Concurrency 有没有办法使用蓝鸟';我们保证,每一个都同时?
Bluebird有一个很好的函数名为Concurrency 有没有办法使用蓝鸟';我们保证,每一个都同时?,concurrency,promise,bluebird,Concurrency,Promise,Bluebird,Bluebird有一个很好的函数名为Promise.map,它允许您为并发操作的数量传递一个额外的参数 e、 g 但是,Promise.map将为所有arrayOfThings在内存中保留任何database.set newThing返回的数组。我不想把所有这些都存储在内存中,因为它会使我的服务器陷入困境。最佳情况下,我希望将Promise.map替换为Promise.each,这样它就不会将返回的值存储在内存中。不幸的是,这太慢了,因为承诺。每个都不是并发的 有什么办法可以改变我的代码,使它像
Promise.map
,它允许您为并发操作的数量传递一个额外的参数
e、 g
但是,Promise.map
将为所有arrayOfThings
在内存中保留任何database.set newThing
返回的数组。我不想把所有这些都存储在内存中,因为它会使我的服务器陷入困境。最佳情况下,我希望将Promise.map
替换为Promise.each
,这样它就不会将返回的值存储在内存中。不幸的是,这太慢了,因为承诺。每个都不是并发的
有什么办法可以改变我的代码,使它像那样工作吗?首先,现在承诺。每个实际上并不分配数组。这有一个悬而未决的问题-我被指派了,我想道歉-我没有在一个开发箱前面,并且已经出国了。我会尽快解决这个问题
第二,没有。目前还没有这样的功能<代码>承诺。每个
都是为了精确地按顺序运行而创建的。拉取请求可能会被接受,在PromiseArray
之上实现它应该不会太难。我们只是以前没有真正看到过用例
同时,您可以使用Promise.map
yield Promise.map arrayOfThings, coroutine (thing) ->
newThing = yield thing.operate()
database.set newThing
, concurrency: 500