沐鳴娛樂業務:_掌握 Promise 的邏輯方法

在後文中使用詞語“成功”表示承諾 resolve,“失敗”表示承諾 reject,Promise 對象有幾個組合方法,可以將多個承諾合併成一個進行處理,Promise 是 ES2015 新增的對象,Promise.all,Promise.all(values),Promise.race,// 設置一個定時器,時間到了就 reject 一個承諾 const timeout = new Promise((resolve, reject) => { setTimeout(reject, 3000) }) const missions = fetch(‘/missions’) try { const res = await Promise.race([timeout, missions]) // missions 任務成功 } catch () { // 時間超過 3 秒了或者任務失敗了 },Promise.all 方法返回的承諾會等到參數中所有的承諾都成功之後才會成功,只要其中有一個失敗了則返回的承諾也會立即失敗,不會等到那些還掛起的承諾有結果,
,const coffee = fetch(‘/coffee’) const tea = fetch(‘/tea’) const me = fetch(‘/me’) // 我全都要 const res = await Promise.all([coffee, tea, me]),分別是 Promise.all, Promise.race, Promise.allSettled, Promise.any,這些方法都可以接收一組承諾,返回一個新的承諾,其中參數 values 是一個可迭代對象,比如數組,在後文中使用詞語“成功”表示承諾 resolve,“失敗”表示承諾 reject