Vue高階(二十三) Promise講解

2021-09-05 07:51:03 字數 1581 閱讀 5170

拓展閱讀

promise意在讓非同步請求邏輯**變得乾淨和直觀,讓非同步請求邏輯**變得井然有序。

promise在設計上具有原子性,即只有三種狀態:等待(pending)、成功(fulfilled)、失敗(rejected)。在呼叫支援promise的非同步方法時,邏輯變得非常簡單,在大規模的軟體工程開發中具有良好的健壯性。

要想給乙個函式賦予promise能力,就要先建立乙個promise物件,並將其作為函式值返回。promise物件要求傳入乙個函式,並帶有resolvereject引數。這是兩個用於結束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建立指定緩衝區長度的管道 讀寫管道 可通過操作符 ...