【发布时间】:2016-09-28 01:27:24
【问题描述】:
我试图跟随 MDN promise.all 示例,但似乎我无法将更多参数传递给 setTimeout callback。
var p1 = new Promise((resolve, reject) => {
setTimeout(resolve, 200, 1,2,3);
});
var p2 = new Promise((resolve, reject) => {
setTimeout(resolve, 500, "two");
});
Promise.all([p1, p2]).then(value => {
console.log(value);
}, reason => {
console.log(reason)
});
这会打印出[1, "two"],我预计会出现[1, 2, 3, "two"]。在没有承诺履行的情况下使用setTimeout 执行此操作会按预期工作
setTimeout(cb, 100, 1, 2, 3);
function cb(a, b, c){
console.log(a, b, c);
}
//=>1 2 3
为什么这不适用于承诺?如何让它与承诺一起工作?
【问题讨论】:
标签: javascript asynchronous promise es6-promise