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

資訊專欄INFORMATION COLUMN

異步解決方案良藥Promise

tulayang / 1780人閱讀

摘要:耦合度過高,可維護(hù)性差。只能在回調(diào)里處理異常。的使用構(gòu)造函數(shù)是一個(gè)構(gòu)造函數(shù),使用操作符返回一個(gè)對(duì)象構(gòu)造函數(shù)接收一個(gè)函數(shù)作為參數(shù)函數(shù)有兩個(gè)函數(shù)類型的參數(shù)和

異步解決方案良藥Promise promise

目前比較流行的異步解決方案,本質(zhì)上是一個(gè)構(gòu)造函數(shù)

1、狀態(tài)

promise有三種狀態(tài),初始的狀態(tài)都是pedding,包括成功的狀態(tài)失敗的狀態(tài)還有等待的狀態(tài)

promise.all()所有的promise對(duì)象成功才會(huì)觸發(fā)成功的狀態(tài),否則失敗狀態(tài)

promise.race()任意一個(gè)子promise的狀態(tài)觸發(fā)后

2、出現(xiàn)的原因

我們來通過一個(gè)例子來說明一下異步調(diào)用的問題

let url1 = "http://xxx.xxx.1";
$.ajax({
    url:url1,
    error:function (error) {},
    success:function (data1) {
        console.log(data1);
    }
});

那當(dāng)我們發(fā)出多個(gè)請(qǐng)求的時(shí)候就只能以嵌套的方式來解決

let url1 = "http://xxx.xxx.1";
let url2 = "http://xxx.xxx.2";
let url3 = "http://xxx.xxx.3";
$.ajax({
    url:url1,
    error:function (error) {},
    success:function (data1) {
        console.log(data1);
        $.ajax({
            url:url2,
            data:data1,
            error:function (error) {},
            success:function (data2) {
                console.log(data2);
                $.ajax({
                    url:url3,
                    data,
                    error:function (error) {},
                    success:function (data3) {
                        console.log(data3);
                    }
                });
            }
        });
    }
});
3、主要的問題

代碼臃腫。

可讀性差。

耦合度過高,可維護(hù)性差。

代碼復(fù)用性差。

容易滋生 bug。

只能在回調(diào)里處理異常。

4 、Promise 的使用 構(gòu)造函數(shù)

Promise 是一個(gè)構(gòu)造函數(shù),使用 new 操作符返回一個(gè) promise 對(duì)象

構(gòu)造函數(shù)接收一個(gè) excutor 函數(shù)作為參數(shù)

excutor 函數(shù)有兩個(gè)函數(shù)類型的參數(shù) resolve 和 reject

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

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

相關(guān)文章

  • ES6-7

    摘要:的翻譯文檔由的維護(hù)很多人說,阮老師已經(jīng)有一本關(guān)于的書了入門,覺得看看這本書就足夠了。前端的異步解決方案之和異步編程模式在前端開發(fā)過程中,顯得越來越重要。為了讓編程更美好,我們就需要引入來降低異步編程的復(fù)雜性。 JavaScript Promise 迷你書(中文版) 超詳細(xì)介紹promise的gitbook,看完再不會(huì)promise...... 本書的目的是以目前還在制定中的ECMASc...

    mudiyouyou 評(píng)論0 收藏0
  • JavaScript 異步

    摘要:從最開始的到封裝后的都在試圖解決異步編程過程中的問題。為了讓編程更美好,我們就需要引入來降低異步編程的復(fù)雜性。寫一個(gè)符合規(guī)范并可配合使用的寫一個(gè)符合規(guī)范并可配合使用的理解的工作原理采用回調(diào)函數(shù)來處理異步編程。 JavaScript怎么使用循環(huán)代替(異步)遞歸 問題描述 在開發(fā)過程中,遇到一個(gè)需求:在系統(tǒng)初始化時(shí)通過http獲取一個(gè)第三方服務(wù)器端的列表,第三方服務(wù)器提供了一個(gè)接口,可通過...

    tuniutech 評(píng)論0 收藏0
  • JavaScript 異步進(jìn)化史

    摘要:簽訂協(xié)議的兩方分別是異步接口和。在異步函數(shù)中,使用異常捕獲的方案,代替了的異常捕獲的方案。需要注意的是,在異步函數(shù)中使異步函數(shù)用時(shí)要使用,不然異步函會(huì)被同步執(zhí)行。 同步與異步 通常,代碼是由上往下依次執(zhí)行的。如果有多個(gè)任務(wù),就必需排隊(duì),前一個(gè)任務(wù)完成,后一個(gè)任務(wù)才會(huì)執(zhí)行。這種執(zhí)行模式稱之為: 同步(synchronous) 。新手容易把計(jì)算機(jī)用語(yǔ)中的同步,和日常用語(yǔ)中的同步弄混淆。如,...

    luzhuqun 評(píng)論0 收藏0
  • 異步解決方案----Promise與Await

    摘要:前言異步編程模式在前端開發(fā)過程中,顯得越來越重要。隨著新標(biāo)準(zhǔn)的到來,處理異步數(shù)據(jù)流又有了新的方案。接下來我們介紹這兩種處理異步編程的方案。仍在繼續(xù)執(zhí)行,但執(zhí)行結(jié)果將被丟棄。使得異步代碼看起來像同步代碼,再也沒有回調(diào)函數(shù)。 前言 異步編程模式在前端開發(fā)過程中,顯得越來越重要。從最開始的XHR到封裝后的Ajax都在試圖解決異步編程過程中的問題。隨著ES6新標(biāo)準(zhǔn)的到來,處理異步數(shù)據(jù)流又有了新...

    Blackjun 評(píng)論0 收藏0
  • 異步解決方案----Promise與Await

    摘要:前言異步編程模式在前端開發(fā)過程中,顯得越來越重要。隨著新標(biāo)準(zhǔn)的到來,處理異步數(shù)據(jù)流又有了新的方案。接下來我們介紹這兩種處理異步編程的方案。仍在繼續(xù)執(zhí)行,但執(zhí)行結(jié)果將被丟棄。使得異步代碼看起來像同步代碼,再也沒有回調(diào)函數(shù)。 前言 異步編程模式在前端開發(fā)過程中,顯得越來越重要。從最開始的XHR到封裝后的Ajax都在試圖解決異步編程過程中的問題。隨著ES6新標(biāo)準(zhǔn)的到來,處理異步數(shù)據(jù)流又有了新...

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

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

0條評(píng)論

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