Promise.race的簡(jiǎn)單實(shí)現(xiàn)
- 作用
- 當(dāng)想要實(shí)現(xiàn)一個(gè)方法,每次傳入多個(gè)請(qǐng)求新翎,哪個(gè)先返回就取消其他的鳍贾,使用先返回的值
- 開始一直想不到怎么寫蕴轨,后來(lái)看到Promise.race直接提供了這樣的方法
- 一起來(lái)看看其是怎么實(shí)現(xiàn)的
function race(entries) {
var Constructor = this; // this 是調(diào)用 race 的 Promise 構(gòu)造器函數(shù)唠雕。
if (!isArray(entries)) {
return new Constructor(function (_, reject) {
return reject(new TypeError('You must pass an array to race.'));
});
} else {
return new Constructor(function (resolve, reject) {
var length = entries.length;
for (var i = 0; i < length; i++) {
Constructor.resolve(entries[i]).then(resolve, reject);
}
});
}
}