成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

js異步編程-async,await以及不可以取代的Promise

JinB / 2056人閱讀

摘要:帶來(lái)了和,讓的異步編程更加方便。但是他們是取代不了的。其中狀態(tài)是這種情況下,看出狀態(tài)是。并報(bào)錯(cuò),不想報(bào)錯(cuò)紅錯(cuò),可以使用將報(bào)錯(cuò)信息到。,簡(jiǎn)介是用來(lái)表示函數(shù)是異步的,出現(xiàn),會(huì)返回一個(gè)對(duì)象,就可以使用方法,方便的添加回調(diào)函數(shù)了。

ES7帶來(lái)了async和await,讓js的異步編程更加方便。

async和await的簡(jiǎn)單語(yǔ)法實(shí)驗(yàn)

async和await是Promise的語(yǔ)法糖,讓書寫更加方便。但是他們是取代不了Promise的。他們是建立在promise機(jī)制上的。
簡(jiǎn)單語(yǔ)法試驗(yàn):
(1)
正常情況下,可以看出也打印出來(lái)一個(gè)Promise。其中Promise狀態(tài)是‘resolved’;

(2)
這種情況下,看出Promise狀態(tài)是"rejected"。并報(bào)錯(cuò),不想報(bào)錯(cuò)“紅錯(cuò)”,可以使用try...catch

(3)
將報(bào)錯(cuò)信息catch到。

async,await簡(jiǎn)介

async
async是用來(lái)表示函數(shù)是異步的,出現(xiàn)async,會(huì)返回一個(gè)Promise對(duì)象,就可以使用then方法,方便的添加回調(diào)函數(shù)了。是語(yǔ)法更加簡(jiǎn)潔。

await
必須出現(xiàn)在async中,不可多帶帶使用;
await后面可以跟任何js表達(dá)式,也就是awati可以等很多類型的東西,但主要是等Promise對(duì)象被狀態(tài)被resolved。

小示例

注意:reject("123"),需要try,catch才能將信息拿出來(lái)。
例子:
(1)resolve正常情況下可以拿出。

(2)reject拿不出

(3)reject需要用try,catch獲取信息

不要將并發(fā)請(qǐng)求發(fā)成了阻塞式同步

如:

function aa(second){

return new Promise((resolve,reject) => {
    setTimeout(() => {
        resolve("request done"+Math.random());
    },second);
})

}

async function bugDemo(){

await aa(1000);
await aa(1000);
await aa(1000);
console.log("clear the loading~");

}

bugDemo();

不阻塞的寫法
function aa(second){

return new Promise((resolve,reject) => {
    setTimeout(() => {
       console.log("request done"+Math.random());
    },second);
})

}
async function bugDemo(){

let a =aa(1000);
let b =aa(1000);
let c =aa(1000);
await Promise.all([a,b,c])
console.log("clear the loading~");

}
bugDemo();

注意:await只能在async函數(shù)的上下文中。
async function forDemo(){

   let arr = [1,2,3,4,5];
   for(let i=0;i

await arr[i];
}
}
這個(gè)是正常的,不會(huì)報(bào)錯(cuò)。

async function forBugDemo(){
let arr = [1,2,3,4,5];
arr.forEach(item => {
await item;
});
}
這個(gè)會(huì)報(bào)錯(cuò)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/108294.html

相關(guān)文章

  • JS 異步(callback→Promiseasync/await)

    摘要:異步編程三座大山原型原型鏈作用域閉包同步異步。異步操作執(zhí)行完畢后,再執(zhí)行該回調(diào)函數(shù),確?;卣{(diào)在異步操作之后執(zhí)行?;卣{(diào)函數(shù)本身是我們約定俗成的一種叫法,我們定義它,但是并不會(huì)自己去執(zhí)行它,它最終被其他人執(zhí)行了。 JS異步編程 JS三座大山:原型原型鏈、作用域閉包、同步異步。之前有寫過(guò)自己對(duì)閉包的理解,今天來(lái)總結(jié)一下JS中的異步。 思考(案例來(lái)自stackoverflow): functi...

    gougoujiang 評(píng)論0 收藏0
  • ES6系列文章 異步神器async-await

    摘要:有兩個(gè)陌生的關(guān)鍵字,同時(shí)函數(shù)執(zhí)行結(jié)果似乎返回了一個(gè)對(duì)象。用來(lái)表示函數(shù)是異步的,定義的函數(shù)會(huì)返回一個(gè)對(duì)象,可以使用方法添加回調(diào)函數(shù)。如果的是對(duì)象會(huì)造成異步函數(shù)停止執(zhí)行并且等待的解決如果等的是正常的表達(dá)式則立即執(zhí)行。 視頻講解 關(guān)于異步處理,ES5的回調(diào)使我們陷入地獄,ES6的Promise使我們脫離魔障,終于、ES7的async-await帶我們走向光明。今天就來(lái)學(xué)習(xí)一下 async-a...

    miqt 評(píng)論0 收藏0
  • 以圖表和示例角度解讀async/await

    摘要:在中,表示抽象的非阻塞異步執(zhí)行。在完成之后安排代碼的唯一方式是通過(guò)方法綁定回調(diào)函數(shù)。下圖描述了該示例的計(jì)算過(guò)程方法中綁定的回調(diào)函數(shù)只有當(dāng)成功的時(shí)候才會(huì)調(diào)用。為了處理失敗的,需要通過(guò)綁定另一個(gè)回調(diào)函數(shù)。 介紹 ES7中,async/await 語(yǔ)法使異步promise的協(xié)調(diào)變得很簡(jiǎn)單。如果你需要以特定順序異步獲取來(lái)自多個(gè)數(shù)據(jù)庫(kù)或API的數(shù)據(jù),可以使用雜亂的promise或回調(diào)函數(shù)。asy...

    sutaking 評(píng)論0 收藏0
  • ES6 系列之我們來(lái)聊聊 Async

    摘要:標(biāo)準(zhǔn)引入了函數(shù),使得異步操作變得更加方便。在異步處理上,函數(shù)就是函數(shù)的語(yǔ)法糖。在實(shí)際項(xiàng)目中,錯(cuò)誤處理邏輯可能會(huì)很復(fù)雜,這會(huì)導(dǎo)致冗余的代碼。的出現(xiàn)使得就可以捕獲同步和異步的錯(cuò)誤。如果有錯(cuò)誤或者不嚴(yán)謹(jǐn)?shù)牡胤剑?qǐng)務(wù)必給予指正,十分感謝。 async ES2017 標(biāo)準(zhǔn)引入了 async 函數(shù),使得異步操作變得更加方便。 在異步處理上,async 函數(shù)就是 Generator 函數(shù)的語(yǔ)法糖。 ...

    Songlcy 評(píng)論0 收藏0
  • [翻譯] Async/Await 使你代碼更簡(jiǎn)潔

    摘要:取而代之,利用事件循環(huán)體系,使用了一種類似語(yǔ)法的工作方式一旦非阻塞的異步操作完成之后,就可以讓開發(fā)者分配的回調(diào)函數(shù)被觸發(fā)。第一個(gè)嘗試嵌套的回調(diào)函數(shù)下面是使用嵌套的回調(diào)函數(shù)的實(shí)現(xiàn)方法這可能對(duì)于任何使用者來(lái)說(shuō)再熟悉不過(guò)了。 寫在文章前 這篇文章翻譯自 ASYNC/AWAIT WILL MAKE YOUR CODE SIMPLER,這是一篇寫于2017年八月的文章,并由某專欄提名為17年十大...

    hightopo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<