【发布时间】:2016-04-29 06:50:36
【问题描述】:
所以如果你有这样的功能:
function* queryDB(query){
yield db.collection.find(query);
}
据我了解,它将产生 db.collection.find() 返回的内容,所以说它返回一个承诺,然后 queryDB() 应该返回一个带有承诺作为其中值的迭代,因此可以使用 co 之类的东西来巩固承诺变成了一个承诺。有没有办法在不修改 db.collection.find() 的情况下产生将传递给该承诺的内容,以便我可以使用 for-of 循环来迭代数据库中的结果?
明确
我在问我是否可以得到传递给函数的参数,这些参数传递给一个承诺的.then()。如
queryDB().then(function(<values>)
但是我生成了一个 <values> 的迭代器。
【问题讨论】:
-
for...of是同步的。异步方法不能同步处理。 -
@Bergi 我要问的问题与您声称的重复内容不同。我要求从 db.collection.find() 中获取值,而不是包装承诺。
-
您希望将值作为参数传递给
then回调。我不确定我是否理解:你想要它们在哪里?在生成器内部(queryDB),所以你可以让它们?或者您是否希望上述then回调产生值的插入器? (我实际上没有解决方案或任何东西,我只是不完全理解这个问题) -
你应该写下你想如何使用
queryDB。界面会是什么样子?
标签: javascript generator ecmascript-6