需求背景;
有个后端接口根据数据量需要花费几秒钟几分钟乃至十几分钟时间,不能让用户直接等待结果。给定时长10秒,超过没返回结果就直接提示结果会在某处公布;没超过就直接给结果。
这里用到promise.race
const promise1 = new Promise((resolve, reject) => { //设定时长 setTimeout(resolve, 10 * 1000, {status: 0}); }); const promise2 = this.$http.postObj('/api/start', itemsList); Promise.race([promise1, promise2]).then((value) => { console.log(value); });