3
有一种方法可以在块中循环遍历一个ID数组,并等待这个块的响应继续循环?Bluebird - 如何在块中循环数组,等待块响应
如:
Promise = require("bluebird")
function(array){
return Promise.*something that will loop chunks from my array and wait for each chunk response*.map(function(id){
return myfunction(id);
});
}
我的问题是,我需要等待从我访问DB的响应,它不能回答我要创建在同所有呼叫时间。我的代码正在引发超时异常,因为我太积极了。
我下面的代码:
Promise = require("bluebird")
function(array){
return Promise.map(array, function(id){
return myfunction(id);
});
}
编辑: 我找到了解决办法!
Promise = require("bluebird")
function(array){
return Promise.map(array, function(id){
return myfunction(id);
}, {concurrency: 10});
}
是的,我需要它是一个承诺。蓝鸟承诺端口究竟是什么? –
他们采用了蓝鸟诺言集成的异步库。我发现[this](https://www.npmjs.com/package/async-bluebird),但它似乎没有经过测试,所以我不想推荐它。但它可能会很好!你应该检查[npmjs](https://www.npmjs.com/search?q=async),看看是否有任何适合你需要的软件包。 – William
谢谢威廉!我找到了一个更好的解决方案,看看我的编辑:) –