ES6優雅的非同步操作Promise

2022-06-01 08:39:07 字數 3348 閱讀 5067

doctype html

>

<

html

lang

="en"

>

<

head

>

<

meta

charset

="utf-8"

>

<

title

>title

title

>

head

>

<

body

>

<

script

>

//1. 使用settimeout

//settimeout(()=>,1000)

//2. promise的使用

//promise的引數-> 函式(resolve,reject)

//resolve,reject本身他們就是函式

//new promise((resolve,reject) =>,1000)

//})

//3. 非同步操作的時候使用promise對這個非同步操作進行封裝

//new -> 建構函式(1.儲存一些狀態資訊 2. 執行傳入的函式 )

//在執行傳入的**函式時,會傳入兩個函式,resolve,reject 他們本身又是函式

newpromise((resolve,reject)

=>

,1000

) }).then((data)

=>

).catch

((err)

=>

)script

>

body

>

html

>

基本使用

doctype html

>

<

html

lang

="en"

>

<

head

>

<

meta

charset

="utf-8"

>

<

title

>title

title

>

head

>

<

body

>

<

script

>

newpromise((resolve, reject)

=>

,1000

)}).then(

data

=>

,err

=>

)

//只寫乙個then(success=>{},err=>{})

script

>

body

>

html

>

.then()

doctype html

>

<

html

lang

="en"

>

<

head

>

<

meta

charset

="utf-8"

>

<

title

>title

title

>

head

>

<

body

>

<

script

>

//需求

//網路請求: aaa -> 自己處理(10行)

//處理: aaa111 -> 自己處理(10行)

//處理: aaa111222 -> 自己處理

//new promise((resolve,reject) => ,1000)

//}).then(res => )

//}).then(res =>)

//}).then(res=>)

//沒有非同步的時候可以簡寫

//簡寫(省略new promise()完整過程,直接return promise.resolve(res + '111'))

//new promise((resolve,reject) => ,1000)

//}).then(res => ).then(res =>).then(res=>)

//極簡寫(再省略promise,直接return res + '111')

//new promise((resolve,reject) => ,1000)

//}).then(res => ).then(res =>).then(res=>)

//加異常簡寫

newpromise((resolve,reject)

=>

,1000

) }).then(res

=>

).then(res

=>

).then(res

=>

).catch

(err

=>

)script

>

body

>

html

>

鏈式操作

doctype html

>

<

html

lang

="en"

>

<

head

>

<

meta

charset

="utf-8"

>

<

title

>title

title

>

head

>

<

body

>

<

script

>

//兩個非同步都完成的時候調.then()

//.then(results=>)

promise.all([

//all裡面傳入的是乙個可迭代物件

newpromise ((resolve, reject)

=>

,2000

) }),

newpromise((resolve, reject)

=>

,1000

) })

]).then(results

=>

)script

>

body

>

html

>

.all

ES6非同步操作之Promise

一直以來覺得非同步操作在我心頭像一團迷霧,可是它重要到我們非學不可,那就把它的面紗解開吧。es6 誕生以前,非同步程式設計的方法,大概有下面四種。非同步 簡單的說 執行順序不是一次連續完成的,中間加入了其他的程式運算,等第一階段準備好了資料,再返回來進行計算。來看看阮一峰老師es6入門中講的的 反覆...

ES6學習筆記(四) 非同步操作

pending resolved rejected var promis new promise function resolve,reject error err promis.then function res catch function err 鏈式呼叫,狀態變為resolve 如果把下一步...

ES6數字操作

二進位制和八進位制 二進位制和八進位制數字的宣告並不是es6的特性。二進位制宣告 二進位制的英文單詞是binary,二進位制的開始是0 零 然後第二個位置是b 注意這裡大小寫都可以實現 然後跟上二進位制的值就可以了。let binary 0b010101 console.log binary 21這...