【发布时间】:2015-04-18 07:55:30
【问题描述】:
这是我需要完成的:
我有一个返回承诺的函数(我们称之为thePromise)。
我有一个包含不同参数的数组来运行thePromise。
示例:
var thePromise = function(options) {
return new Promise(function(resolve, reject) {
// Some asynchronous code
resolve(value);
});
}
var parameters = [
{ a: 10, b: 15 },
{ a: 20, b: 30 }
];
我将解析的value 加到一个变量中,我们称之为total。
这是我卡住的地方:
只有当 promise 的结果总和为 total 低于定义的数量时,我才需要使用下一组参数运行 promise。
我尝试使用async.each(),但这不起作用,因为在我调用next() 函数之前调用了下一个promise。
当前(不工作)解决方案:
async.each(paramaters, function(options, next) {
thePromise(options).then(function(value) {
total += value;
if (total > 10) {
return next('limited');
}
next();
}).catch(next);
}, function(err) {
if (err && err !== 'limited) { // Handle error }
// Handle success
});
【问题讨论】:
-
尝试添加用于迭代参数的函数调用。
-
@Bogdan.Nourescu 完成
标签: javascript node.js asynchronous es6-promise