亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

一道有意思并對(duì)你有幫助的Promise題

yy13818512006 / 1339人閱讀

摘要:一道有意思的題以下我的學(xué)習(xí)分析心路歷程,以及我自己又多加了幾道菜希望對(duì)你有幫助先上菜分析第一道菜第一次看到我做錯(cuò)了,答案是我的疑惑就是為什么在和之間,很奇怪。說明什么呢我對(duì)的內(nèi)部實(shí)現(xiàn)還不了解,那只能去看源碼了。

一道有意思的題

以下我的學(xué)習(xí)分析心路歷程,以及我自己又多加了幾道菜;希望對(duì)你有幫助

先上菜
new Promise((resolve, reject) => {
    console.log("promise1");
    resolve();
}).then(() => {
    console.log("then11");
    new Promise((resolve, reject) => {
        console.log("promise2");
        resolve();
    }).then(() => {
        console.log("then21");
    }).then(() => {
        console.log("then23");
    });
}).then(() => {
    console.log("then12");
});
分析第一道菜

第一次看到我做錯(cuò)了,答案是

promise1
then11
promise2
then21
then12
then23

我的疑惑就是then12為什么在then21then23之間,很奇怪。說明什么呢?我對(duì)Promise的內(nèi)部實(shí)現(xiàn)還不了解,那只能去看源碼了。在學(xué)習(xí)過程中,自己也嘗試改變了幾處,也貼上來(lái)吧,大家看看

看完后我的理解

先分析下面代碼

new Promise((resolve, reject) => {
    console.log("promise1");
    resolve();
})

第一步console.log("promise1"),這是第一個(gè)promise實(shí)例

第二步resolve(),他是一個(gè)異步,放入異步隊(duì)列中,取名異步1

第三步this.status 狀態(tài)是pending

接著執(zhí)行下面代碼

.then(() => {
    console.log("then11");
    new Promise((resolve, reject) => {
        console.log("promise2");
        resolve();
    }).then(() => {
        console.log("then21");
    }).then(() => {
        console.log("then23");
    });
})

因?yàn)闋顟B(tài)是pending,將then方法回調(diào)函數(shù)加入執(zhí)行隊(duì)列(一個(gè)數(shù)組)等待執(zhí)行(專用來(lái)放then方法的數(shù)組),該then方法取名方法1

重點(diǎn)接著執(zhí)行什么?

并不是執(zhí)行.then(() => {console.log(then12)}),要記住的是then的參數(shù)方法執(zhí)行時(shí)機(jī)是當(dāng)前(屬于自己的)promise狀態(tài)改變才會(huì)執(zhí)行,誰(shuí)改變resolve或者rejectd的執(zhí)行,那么這里then的promise哪里來(lái),就是上面的方法1中來(lái)看他的return值

所以開始執(zhí)行異步1(我都有取名的,看

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

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

相關(guān)文章

  • 「今日頭條」前端面試和思路解析

    摘要:一篇文章和一道面試題最近,有篇名為張圖幫你一步步看清和的執(zhí)行順序的文章引起了我的關(guān)注。作者用一道年今日頭條的前端面試題為引子,分步講解了最終結(jié)果的執(zhí)行原因。從字面意思理解,讓我們等等。當(dāng)前的最新版本,在這里的執(zhí)行順序上,的確存在有問題。 一篇文章和一道面試題 最近,有篇名為 《8張圖幫你一步步看清 async/await 和 promise 的執(zhí)行順序》 的文章引起了我的關(guān)注。 作者用...

    寵來(lái)也 評(píng)論0 收藏0
  • JavaScript系列——JavaScript同步、異步、回調(diào)執(zhí)行順序之經(jīng)典閉包setTimeou

    摘要:同步異步回調(diào)傻傻分不清楚。分割線上面主要講了同步和回調(diào)執(zhí)行順序的問題,接著我就舉一個(gè)包含同步異步回調(diào)的例子。同步優(yōu)先回調(diào)內(nèi)部有個(gè),第二個(gè)是一個(gè)回調(diào)回調(diào)墊底。異步也,輪到回調(diào)的孩子們回調(diào),出來(lái)執(zhí)行了。 同步、異步、回調(diào)?傻傻分不清楚。 大家注意了,教大家一道口訣: 同步優(yōu)先、異步靠邊、回調(diào)墊底(讀起來(lái)不順) 用公式表達(dá)就是: 同步 => 異步 => 回調(diào) 這口訣有什么用呢?用來(lái)對(duì)付面試的...

    lewif 評(píng)論0 收藏0
  • JavaScript系列——JavaScript同步、異步、回調(diào)執(zhí)行順序之經(jīng)典閉包setTimeou

    摘要:同步異步回調(diào)傻傻分不清楚。分割線上面主要講了同步和回調(diào)執(zhí)行順序的問題,接著我就舉一個(gè)包含同步異步回調(diào)的例子。同步優(yōu)先回調(diào)內(nèi)部有個(gè),第二個(gè)是一個(gè)回調(diào)回調(diào)墊底。異步也,輪到回調(diào)的孩子們回調(diào),出來(lái)執(zhí)行了。 同步、異步、回調(diào)?傻傻分不清楚。 大家注意了,教大家一道口訣: 同步優(yōu)先、異步靠邊、回調(diào)墊底(讀起來(lái)不順) 用公式表達(dá)就是: 同步 => 異步 => 回調(diào) 這口訣有什么用呢?用來(lái)對(duì)付面試的...

    rockswang 評(píng)論0 收藏0
  • 深入淺出JavaScript運(yùn)行機(jī)制

    摘要:主線程從任務(wù)隊(duì)列中讀取事件,這個(gè)過程是循環(huán)不斷的,所以整個(gè)的這種運(yùn)行機(jī)制又稱為事件循環(huán)。上面也提到,在到達(dá)指定時(shí)間時(shí),定時(shí)器就會(huì)將相應(yīng)回調(diào)函數(shù)插入任務(wù)隊(duì)列尾部。這就是定時(shí)器功能。關(guān)于定時(shí)器的重要補(bǔ)充定時(shí)器包括與兩個(gè)方法。 一、引子 本文介紹JavaScript運(yùn)行機(jī)制,這一部分比較抽象,我們先從一道面試題入手: console.log(1); setTimeout(function()...

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

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

0條評(píng)論

閱讀需要支付1元查看
<