// 谁跑的快,以谁为准执行回调 ,给某个异步请求设置超时时间,并且在超时后执行相应的操作
Promise.race([runAsyn(),runAsyn2(),runAsyn3()]).then((reason)=>{
console.log(reason);
})
// race 举例 , 请求加载一个图片
function RequestImg() {
var p = new Promise((resolve, reject) => {
var img = new Image();
img.onload = function () {
resolve(img);
};
img.src = "xxxxx";
});
return p;
}
//延时函数,给请求计时
function timeout() {
var p = new Promise((resolve, reject) => {
setTimeout(() => {
reject("图片请求超时");
}, 3000);
});
return p
}
Promise.race([RequestImg(), timeout()])
.then((result) => {
console.log(result);
})
.catch((reason) => {
console.log(reason);
});
运行效果: