摘要:一次性掌握異步處理假定一個(gè)場景,等女朋友睡起來出去逛街,超過就不等了,自己打游戲了處理方式寫法鏈?zhǔn)秸{(diào)用方法,只有當(dāng)異步處理成功后回到用拿到異步處理成功后的數(shù)據(jù)異步處理出錯(cuò)時(shí),會(huì)調(diào)用獲取到異常也就是說方法里有兩個(gè)回調(diào)函數(shù)作為參數(shù)或者還有第二種
一次性掌握ES6/ES7異步處理
假定一個(gè)場景,等女朋友睡起來出去逛街,超過5s就不等了,自己打游戲了 ...ES6 Promise 處理方式
promise 寫法
promise鏈?zhǔn)秸{(diào)用方法,只有當(dāng)異步處理成功后回到用.then(data => {}) 拿到異步處理成功后的數(shù)據(jù)
異步處理出錯(cuò)時(shí),會(huì)調(diào)用.then(err => {}) 獲取到異常
也就是說.then( data => {}, err => {}) 方法里有兩個(gè)回調(diào)函數(shù)作為參數(shù)
或者還有第二種寫法.then(data => {}).catch(err => {})
function waiting (ms) { return new Promise ( (resolve, reject) => { if(ms > 5000) { reject("long time") } else { setTimeout(() => { resolve(ms); }, ms) } }) } function main () { waiting(3000).then( success => { console.log(success); }, err => { console.log(err) }) } // 或者 function main() { waiting(3000).then(data => { console.log(data) }).catch(err => { console.log(err); }) }ES7 Async/Await 處理方式
async 表明這個(gè)函數(shù)里面有異步操作,await總是寫在async聲明的函數(shù)中的
遇到awit,函數(shù)就會(huì)停止執(zhí)行,等待異步操作結(jié)束,再執(zhí)行后面的語句
異步操作獲取的結(jié)果即為resolve回調(diào)函數(shù)的參數(shù)返回
異常即通過reject回調(diào)函數(shù)參數(shù)獲取
注意,捕獲異常時(shí),我們往往需要在async函數(shù)體中使用 try catch 方式獲取異常
let sleep = ms => { return new Promise ( (resolve, reject) => { if(ms > 5000) { reject("long time") } else { setTimeout(function() { resolve(ms) } ,ms) } }) } let play = (ms) => { console.log(`I wait you ${ms} s`) } let main = async () => { try{ let result = await sleep(3000); play(result) } catch (err) { throw err } }注意:await等的是什么?是promise是承諾 返回的是resolve回調(diào)函數(shù)里面的數(shù)據(jù)
更多用法可以參考:Promise && Async/Await
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/108628.html
摘要:它們都用于聲明變量。盲目使用替換后可能會(huì)導(dǎo)致預(yù)期意外的結(jié)果。有鑒于此,還是建議使用字符串,布爾和數(shù)字類型的數(shù)據(jù)類型。像使用這種下劃線命名約定在一個(gè)開源項(xiàng)目中,命名規(guī)則很難維持得一直很好,這樣經(jīng)常會(huì)造成一些困擾。 今天群里有小伙伴跟我聊天,問了我?guī)讉€(gè)關(guān)于ES6的問題,我才意識(shí)到,大部分初學(xué)者在學(xué)習(xí)的過程中,都是學(xué)了HTML/CSS/JS之后就開始上手學(xué)習(xí)框架了,而對于ES6的重視程度卻不...
摘要:并且用驗(yàn)證了中一系列的實(shí)質(zhì)就是魔法糖的本質(zhì)。抽絲剝繭我們首先看的編譯結(jié)果這是一個(gè)自執(zhí)行函數(shù),它接受一個(gè)參數(shù)就是他要繼承的父類,返回一個(gè)構(gòu)造函數(shù)。 如果你已經(jīng)看過第一篇揭秘babel的魔法之class魔法處理,這篇將會(huì)是一個(gè)延伸;如果你還沒看過,并且也不想現(xiàn)在就去讀一下,單獨(dú)看這篇也沒有關(guān)系,并不存在理解上的障礙。 上一篇針對Babel對ES6里面基礎(chǔ)class的編譯進(jìn)行了分析。這一篇將...
閱讀 4020·2021-11-17 09:33
閱讀 3311·2021-10-08 10:05
閱讀 3141·2021-09-22 15:36
閱讀 1179·2021-09-06 15:02
閱讀 2800·2019-08-29 12:45
閱讀 1624·2019-08-26 13:40
閱讀 3439·2019-08-26 13:37
閱讀 453·2019-08-26 13:37