iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 25
0
Modern Web

一步一腳印-紮紮實實學es6系列 第 25

promise(3) all(), race()

  • 分享至 

  • xImage
  •  

promise 預計寫3篇,之後再把相關知識點補進這三篇裡面
接下來的五天再把generator 跟 async 寫完
昨天一天沒睡…趕快補眠去@@

Promise.all()

來看看promise.all() 怎麼用
話不多說
先看程式
程式來自 w3c

var promise1 = Promise.resolve(3);
var promise2 = 42;
var promise3 = new Promise(function(resolve, reject) {
  setTimeout(resolve, 100, 'foo');
});

Promise.all([promise1, promise2, promise3]).then(function(values) {
  console.log(values);
});

顧名思義,promise.all()會將引入的參數一個一個去run , 然後把回傳值放在
values
這個陣列當中
https://ithelp.ithome.com.tw/upload/images/20181025/20110579uFH8zWk0Xz.png

但是當其中有1個失敗,則全部失敗並且跳錯誤訊息

Promise.race()

race 也就是競賽,實際案例好像很少見
他可以把參數迭代,並且返回最快改變狀態的data

const p1 =new Promise((resolve,reject)=>setTimeout(resolve,2000,'2000ms'));

const p2 =new Promise((resolve,reject)=>setTimeout(resolve,1000,'1000ms'));

Promise.race([p1,p2])
.then(
  value=>console.log(value)

)

結果返回的是ps2的1000ms


上一篇
promise(2)
下一篇
非同步處理工具-Generator
系列文
一步一腳印-紮紮實實學es630
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言