拓展閱讀
promise
意在讓非同步請求邏輯**變得乾淨和直觀,讓非同步請求邏輯**變得井然有序。
promise
在設計上具有原子性,即只有三種狀態:等待(pending
)、成功(fulfilled
)、失敗(rejected
)。在呼叫支援promise
的非同步方法時,邏輯變得非常簡單,在大規模的軟體工程開發中具有良好的健壯性。
要想給乙個函式賦予promise
能力,就要先建立乙個promise
物件,並將其作為函式值返回。promise
物件要求傳入乙個函式,並帶有resolve
和reject
引數。這是兩個用於結束promise
等待的函式,對應的狀態分別是成功和失敗。
function asyncmethod
(...args)
)}
將新建立的promise
物件作為非同步方法的返回值,所有的狀態就可以使用它所提供的方法進行控制了。
建立promise
物件後,就可以進行非同步操作,並通過resolve (value)
和reject (reason)
方法來控制promise
的原子狀態。
new
promise
((resolve,reject)
=>)}
)
其中,在promise
的首層函式作用域中一旦出現throw
語句,promise
物件便會直接進入失敗狀態,並以throw
語句的丟擲值作為錯誤值進行錯誤處理。
(
newpromise
(function()
).catch
(err=
>console.
error
(err)
)
promise .race (iterable)
方法同樣也接受乙個包含若干個promise
物件的可迭代物件,但不同的是這個方法會監聽所有的promise
物件,並等待其中的第乙個進入完成狀態的promise
物件,一旦有第乙個promise
物件進入了完成狀態,該方法返回的promise
物件便會根據這第乙個完成的promise
物件的狀態而改變。
promise.
race
(promises)
.then
(values=
>).
catch
(err=
>console.
error
(err)
)
!注意,其他方法仍然會繼續執行。 隨筆 二十三
1.gradle 完a整指南 android 2.android gradle 外掛程式 3.0 挖坑日記 3.android效能優化全方面解析 4.android studio 3.2新功能特性 5.重新認識 androidstudio 和 gradle,這些都是你應該知道的 6。美團外賣andr...
演算法(二十三)
1 給定乙個整數陣列nums,找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。public int maxsubarray int nums return maxsum 複雜度分析 public int maxsubarray int nums return maxsum 2 ...
二十三 管道
在go語言中可以通過chan來定義管道,可以通過操作符 和 對管道進行讀取和寫入操作 通過管道維護例程狀態 使用make函式初始化,make chan type make chan type,len 不帶len引數的用於建立無快取區的管道,使用len建立指定緩衝區長度的管道 讀寫管道 可通過操作符 ...