爲什麼Promise.all()允許任何對象作爲迭代被傳入?爲什麼Promise.all()允許非Promise對象?
例如(的jsfiddle:https://jsfiddle.net/npqgpcud/6/):
var promise1 = "one";
var promise2 = 2222;
var promise3 = new Promise(function (fulfill, reject) {
fulfill("three");
});
Promise.all([promise1, promise2, promise3]).then(results => {
p1.innerHTML = results[0];
p2.innerHTML = results[1];
p3.innerHTML = results[2];
});
如果我想模仿這種行爲的單一承諾,有沒有推薦的解決方案,或者將它推薦給使用Promise.all([承諾])?
你的意思是,如果你想創建一個***解決了一個承諾,以***一個你已經擁有的價值? –
爲什麼?因爲它允許任何[可用](http://stackoverflow.com/q/29435262/1048572),而不僅僅是承諾,並且'Promise.resolve'算法也可以處理普通值。當你知道一個變量從不包含承諾時,你不應該使用這個。 – Bergi