我試圖跟隨MDN promise.all示例,但它似乎我不能傳遞更多的參數setTimeout callback。傳遞多個參數以承諾解決setTimeout內
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(cb, 100, 1, 2, 3);
function cb(a, b, c){
console.log(a, b, c);
}
//=>1 2 3
與setTimeout
不還願的作品這樣做爲什麼不承諾此項工作?如何才能與諾言一起工作?
如果知道'Promise'的數量,則可以將解構賦值傳給'then'處理函數:'.then(([first,second])=> '。 – ftor