// 谁跑的快,以谁为准执行回调 ,给某个异步请求设置超时时间,并且在超时后执行相应的操作
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);
});
运行效果:

本文介绍了如何使用JavaScript的Promise.race方法来比较多个异步请求,设置超时并在超时后执行相应操作,以图片加载为例展示了具体实现和结果处理。
1119

被折叠的 条评论
为什么被折叠?



