2
这是我不明白的关于.each()
的内容。该函数返回一个承诺,该承诺产生原始数组而不是回调结果数组。你如何得到结果呢? .map()
不是我要找的元素,因为元素需要按顺序处理。Bluebird:得到每个的结果()
var input = [1, 2, 3];
return promise.each(input, causeSideEffect).then(function() {
/* return true if any side effect occurred */
});
在这个例子中,causeSideEffect()
返回boolean的承诺,表明它是否做了什么。
编辑:能产生3.0版行为
var promise = require('bluebird');
var testInput = [ 1 ];
promise.each(testInput, function(){}).then(function(results) {
if (results[0] === 1) {
var originalFunction = promise.each;
promise.each = function(array, callback) {
var results = [];
var closure = function(item, index, length) {
return promise.resolve(callback(item, index, length)).then(results.push.bind(results));
};
return originalFunction(array, closure).return(results);
}
}
});
很酷。 Will 3.0会很快发布吗? – cleong
@cleong petka超级忙,io.js的东西,但我们希望这是一个星期的问题。 –