承诺每个 return 值

Promise each with return value

我有一个 promise.each 函数,它迭代 arr 数组并调用测试函数,如下所示:

var promise = require("bluebird");
var arr = [1,2,3];

function test(item) {
  return promise.resolve('change..');
}

return promise.each(arr, function(item) {
  return test(item);
})
.then(function(result) {
  console.log(result);
});

结果将是 [1,2,3]。有什么办法可以将结果更改为 [change.., change.., change..] 吗?

谢谢。

您正在寻找 Promise.map. Or if you want to ensure a sequential execution, Promise.mapSeries(自 v3.0.1 起)。