Promise.all()
:等待里面的都完成才回传,因为是全部完成,所以会是阵列,失败就是回传失败那个Promise.race()
:等待里面的第一笔完成就回传Promise 例子
// 有机率失败
function test1 (name, time){
return new Promise((resolve, reject)=>{
setTimeout(()=>{
if(Math.random() > 0.5){
resolve(`${name}: success`)
}
else{
reject(`${name}: error`)
}
}, time)
})
}
// 一定成功
function test2 (name, time){
return new Promise((resolve, reject)=>{
setTimeout(()=>{
if(true){
resolve(`${name}: success`)
}
else{
reject(`${name}: error`)
}
}, time)
})
}
Promise.all
// 有机率失败
Promise.all([test1('a',1000),test1('b',2000),test1('c',3000)]).then((data)=>{
console.log(data);
}).catch((error)=>{
console.log(error);
})
// 成功回传 ['a: success', 'b: success', 'c: success']
// 失败回传 a: error or b: error or c: error 其中一种
// 一定成功
Promise.all([test2('a',1000),test2('b',2000),test2('c',3000)]).then((data)=>{
console.log(data);
}).catch((error)=>{
console.log(error);
})
// 成功回传 ['a: success', 'b: success', 'c: success']
Promise.race
// 有机率失败
Promise.race([test1('a',1000),test1('b',2000),test1('c',3000)]).then((data)=>{
console.log(data);
}).catch((error)=>{
console.log(error);
})
// 成功回传 a: success
// 失败回传 a: error
MDN 使用 Promise
MDN Promise
铁人赛:使用 Promise 处理非同步
JavaScript Promise 全介绍
JS 原力觉醒 Day14 - 一生悬命的约定:Promise
JavaScript基本功修练:Day25 - Promise
从Promise开始的JavaScript异步生活
Promise 与 Opendata
JavaScript 同步延迟 ( Promise + setTimeout )
JavaScript | 从Promise开始承诺的部落格生活
再稍微 Promise 一下
>>: Day25 ATT&CK for ICS - Collection(1)
接下来的天数,预计要来实作上面已经教学的 sass 方法,毕竟学习是一回事,真正拿来实作则是另一回事...
网页服务器 学习了快一个月後总算可以来撰写无线的智慧装置, 相信利用这些技术肯定能提升你的育儿体验,...
衡量前的议题 这项衡量要支援什麽决策? 要衡量的事物,若用可观察到的结果来定义,会是什麽? 这个事物...
前言 在开始进入我们各式各样的深度模型之前,我们要先来介绍一个非常 Powerful 的 Deep ...
多载 利用JAVA中的多载,就不需要这麽多的函数来做相同的工作! 那多载到底是什麽呢?其实就是指相同...