最近的mongodb client 3.2.1更新表明,游标现在是启用Symbol.asyncIterator
循环的合适的for..await..of
。
我以为这意味着它现在可以与bluebird.map
(包括并发)一起使用,是一个有效的迭代器。
当我尝试时,出现以下错误:TypeError: expecting an array or an iterable object but got [object Null]
它确实适用于for..await..of
有一个cursor.forEach
选项,但是无法设置并发性,这就是为什么我使用Bluebird的地图。
如果bluebird不支持asyncIterator,是否有任何替代方案?例如我看到某些地方可能会选择狂喜或轻快?
答案 0 :(得分:0)
您可以使用it-batch来控制异步可迭代的并发性:
const batch = require('it-batch')
const batchedIteratable = batch(cursor, 2) // concurrency: 2
const result = await all(batchedIteratable)