非同步promise機制

2021-08-31 00:04:17 字數 1190 閱讀 8232

1. promise鏈

const setdelay = (millisecond) => 毫秒後輸出的`)

}, millisecond)

})}

const setdelaysecond = (seconds) => 秒,一共需要延遲$秒`)

resolve(setdelay(2000)) // 這裡依賴上乙個promise

}, seconds * 1000)

})}

setdelay(2000)

.then((result)=>)

.then((result)=>).catch((err)=>)

2.then catch finally

then 返回兩個引數 result (resolve)、error(reject)

catch 針對於整個鏈式寫法的錯誤捕獲的,鏈式中的catch並不是終點!!catch完如果還有then還會繼續往下走

finally 表示在catch後必須肯定會預設執行的的操作

3.  如何跳出或停止promise鏈式

3.1 reject跳出

setdelay(2000)

.then((result)=>)

.then((result)=>)

.then((result)=>)

.catch((mes)=>)

便於區分異常跳出和主動跳出,新增isnoterrorexpection引數 

return promise.reject()
3.2 一直pengding 相當於跳出了,可能會出現記憶體洩漏

return new promise(()=>)
這裡返回的乙個新的promise,沒有resolve和reject,那麼會一直處於pending狀態,因為沒返回啊,那麼這種狀態就一直保持著,中斷了這個promise

4. promise.all 並行執行

promise.all([setdelay(1000), setdelaysecond(1)]).then(result=>)

.catch(err=>)

Promise 非同步程式設計

promise 是非同步程式設計的解決方案,他代表承諾,便是一定會丟擲兩種狀態,狀態一經確定就不會改變 編譯成功 resolve value 為 必選 編譯失敗 reject error 可選 使用then 接收正確的丟擲 then 後面接 catch function error 可以簡寫為fun...

Promise非同步操作

promise是es6中新增加的類 new promise 目的為了管理js中非同步程式設計,也叫 promise 設計模式 promise用來解決非同步問題。本身是同步的,只是用來管理非同步程式設計的一種模式 所謂promise,簡單說就是乙個容器 殼子 裡面儲存著某個未來才會結束的事件 通常是乙...

Promise非同步程式設計

當我們用 ajax去請求有依賴的多個資料的時候,編寫會形成漏斗形狀的結構,可讀性差,可以使用es6提供的promise promise概述 promise是非同步程式設計的一種解決方案,從語法上講,promise是乙個物件,從它可以獲得非同步操作的訊息 使用promise有以下好處 可以避免多層非同...