91aaa在线国内观看,亚洲AV午夜福利精品一区二区,久久偷拍人视频,久久播这里有免费视播

<strong id="fvuar"></strong>

  • <sub id="fvuar"><dl id="fvuar"><em id="fvuar"></em></dl></sub>

    1. 千鋒教育-做有情懷、有良心、有品質的職業(yè)教育機構

      手機站
      千鋒教育

      千鋒學習站 | 隨時隨地免費學

      千鋒教育

      掃一掃進入千鋒手機站

      領取全套視頻
      千鋒教育

      關注千鋒學習站小程序
      隨時隨地免費學習課程

      當前位置:首頁  >  技術干貨  > Promise是什么?

      Promise是什么?

      來源:千鋒教育
      發(fā)布人:wjy
      時間: 2022-06-01 16:43:00 1654072980

      本文主要強調Promise的用法,討究Promise究竟在干什么。雖然已有大量的資料文檔對這個概念進行了詳細的講解??墒菍Τ鯇W者而言,在過于繁瑣的書面性概念中,確常常無法抓住重點,對問題本身的理解反而會造成麻煩。本文章只將重點放在作用上,忽略掉其它繁雜的概念,用盡可能直白的語言對這個問題進行剖析。閱讀本文需要十分鐘左右的時間,希望對您能有所幫助。

      Promise是什么

      ### **Promise:**

      ### **作用:解決回調地獄問題,將函數(shù)嵌套的代碼方式改為平級的。**

      當一個回調函數(shù)嵌套一個回調函數(shù)的時候,就會出現(xiàn)一個嵌套結構,當嵌套的多了就會出現(xiàn)回調地獄的情況。

      為了能更加清晰的體會promise,我們需要先觀察一段代碼。

      ```text
              function f1(f){
        console.log("f1");
        f();
       }
       
       function f2(f){
        console.log("f2");
        f();
       }
       
       function f3(f){
        console.log("f3");
        f();
       }
       
       function f4(){
        console.log("f4");
       }
       
       //回調地獄
       f1(function(){
        f2(function(){
         f3(f4);
        });
       });
      ```

      代碼段有四個函數(shù),f1,f2,f3,f4均為函數(shù),且后一個函數(shù)作為前一個函數(shù)的參數(shù),然后進行嵌套調用。最終從調用的語法來看,代碼十分復雜,我們把回調函數(shù)這樣調用稱為回調地獄。

      **Pomise的作用就是將嵌套的調用方式改為平級的。**也就是說從調用的結果上來看,最終本質上是沒有任何區(qū)別,Pormise只是改變了語法的書寫規(guī)則。這就是Pomise的基本使用方法。

      Promise的語法規(guī)則如下:

      ```text
              //使用方法
       //1.通常放入一個函數(shù)體內(nèi)
       //2.將promise對象作為返回值
       //3.promise對象包含的多為異步操作
       function fun(){
              //success表示成功的回調,failed表示失敗時的回調
        let p = new Promise(function(success,failed){
         if(條件){
          success();
         }else{
          failed();
         }
        });
        return p;
       }
       
       function success(){
        console.log("success");
       }
       
       function failed(){
        console.log("failed");
       }
       
              //promise對象.then(成功的方法,[失敗的方法]);
       fun().then(success,failed);
      ```

      這里promise對象可以將以前通過形參傳遞的回調函數(shù),用then方法來進行傳遞。其實promise主要處理的是異步操作,如常見的如ajax請求。我們的每一個異步事件,在執(zhí)行的時候,都會有三種狀態(tài),執(zhí)行中,成功,失敗。這也就解釋了為什么then方法為什么會有兩個參數(shù),參數(shù)1代表成功時執(zhí)行的回調函數(shù),參數(shù)2代表失敗時的執(zhí)行狀態(tài)。

      所以上述函數(shù)嵌套調用的代碼可以修改為:

      ```text
              function f1(){
        console.log("f1");
        let p = new Promise(function(f){
         f();
        });
        return p;
       }
       
       function f2(){
        console.log("f2");
        let p = new Promise(function(f){
         f();
        });
        return p;
       }
       
       function f3(){
        console.log("f3");
        let p = new Promise(function(f){
         f();
        });
        return p;
       }
       
       function f4(){
        console.log("f4");
       }
       
       //平級調用的方法
       f1().then(f2).then(f3).then(f4);
      ```

      這樣實現(xiàn)的功能和上述代碼的功能是完全一樣的,但是解決了函數(shù)嵌套調用的麻煩。

      結論:**Pomise的作用就是將嵌套的調用方式改為平級的,用于處理異步操作。**

      更多關于“html5培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓經(jīng)驗,課程大綱更科學更專業(yè),有針對零基礎的就業(yè)班,有針對想提升技術的提升班,高品質課程助理你實現(xiàn)夢想。

      tags:
      聲明:本站稿件版權均屬千鋒教育所有,未經(jīng)許可不得擅自轉載。
      10年以上業(yè)內(nèi)強師集結,手把手帶你蛻變精英
      請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
      免費領取
      今日已有369人領取成功
      劉同學 138****2860 剛剛成功領取
      王同學 131****2015 剛剛成功領取
      張同學 133****4652 剛剛成功領取
      李同學 135****8607 剛剛成功領取
      楊同學 132****5667 剛剛成功領取
      岳同學 134****6652 剛剛成功領取
      梁同學 157****2950 剛剛成功領取
      劉同學 189****1015 剛剛成功領取
      張同學 155****4678 剛剛成功領取
      鄒同學 139****2907 剛剛成功領取
      董同學 138****2867 剛剛成功領取
      周同學 136****3602 剛剛成功領取
      相關推薦HOT