日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

在本教程中,我們將討論 JavaScript 中的 Promise 鏈。在轉向 Promise 鏈之前,我們先來談談什么是 Promise

因此,我們知道 JavaScript 是單線程的,這意味著不允許兩個函數同時運行,因為我們只有一個調用堆棧,如下所示,它有一個要執行的函數

當一個函數完成執行時,另一個函數開始執行,因此為了實現兩個或多個函數同時運行,我們在 JavaScript 示例中使用異步編程 – setTimeout 函數,它接受一個回調函數和指定的時間,之后它將執行執行該函數。

setTimeout(function cT(){
   console.log("I am here after 5 seconds")
}, 5000);

登錄后復制

因此,我們對異步操作使用 Promise,它給出異步操作的結果及其完成或失敗。

就像在現實生活中一樣,我們以與做出承諾相同的方式承諾完成任何工作,并且它存在于三種狀態之一。

    待處理 – 這代表初始狀態,表示它既未完成也未拒絕。
    Fulfilled – 這表示我們分配的操作已成功完成。
    拒絕 – 此狀態表示操作無法執行,它被拒絕。

    異步方法返回一個值,但它不返回最終值,而是返回一個將來為該函數提供值的承諾。

    我們在 Promise 語句之后使用 then() 方法執行 Promise,如果由于某些錯誤而被拒絕,則將使用 catch 塊進行處理。

    如何在 JavaScript 中聲明 Promise?

    let promise = new Promise(function (resolve, reject) {
       return resolve("Hello I am resolved");
    });
    

    登錄后復制

    這里的promise內部有一個函數,稱為回調函數,它有一個參數作為兩個方法resolve()reject(),正如我們已經知道的那樣從上面關于兩者的解釋來看。

    因此,這里的resolve確保我們給出的函數的成功完成,而reject將確保它對給定的可執行回調函數不成功完成的責任。

    示例 1

    讓我們看看使用 Set 查找字符串中唯一字符的程序。

    <!DOCTYPE html>
    <html>
    <head>
       <title>Promise chaining in JavaScript</title>
    </head>
    <body>
       <h3> Execute a Promise we receive</h3>
       <p id ="result"></p>
       <script>
          let promise = new Promise(function (resolve, reject) {
             return resolve("Hello I am resolved");
          });
          promise.then(function(value) {
             console.log(value);
             document.getElementById("result").innerHTML += value;
          })
       </script>
    </body>
    </html>
    

    登錄后復制

    在上面里面。 then() 方法會傳遞一個回調函數,value 變量負責打印出來自resolve() 方法的結果。

    什么是承諾鏈?

    Promise 鏈基本上是多個異步函數調用,并以同步方式依次執行它們。 then() 方法。

    示例 2

    讓我們通過一個例子來詳細理解。

    <!DOCTYPE html>
    <html>
    <head>
       <title>Promise chaining in JavaScript </title>
    </head>
    <body>
       <h3> Promise Chaining</h3>
       <p id ="result"></p>
       <script>
          let promise = new Promise(function (resolve, reject) {
             return resolve(10);
          });
          promise.then(function(firstPromise_val) {
             alert(firstPromise_val)
             document.getElementById("result").innerHTML += "First Promise val: "+firstPromise_val+"<br>";
             return firstPromise_val+10;
          }).
          then(function(secondPromise_val){
             alert(secondPromise_val)
             document.getElementById("result").innerHTML +="Second Promise val: "+ secondPromise_val+"<br>";
             return secondPromise_val+10;
          }).
          then(function(thirdpromise_val){
             alert(thirdpromise_val)
             document.getElementById("result").innerHTML +="Third Promise val: "+thirdpromise_val+"<br>";
             return thirdpromise_val+10;
          })
       </script>
    </body>
    </html>  
    

    登錄后復制

    讓我們了解承諾鏈是如何工作的。

      第一個最初的承諾得到了兌現。
      然后 .then() 方法調用它創建了一個新的 Promise 并得到了解析。
      再次調用 .then() 方法,它創建了一個新的 Promise,然后它也得到了解析。
      同樣,它正在工作,我們也可以添加另一個承諾處理程序。

      所以,基本上 .then() 方法返回一個新的 Promise,并使用 .then() 調用 next 等等。

      示例 3

      <!DOCTYPE html>
      <html>
      <head>
         <title>Promise chaining in javascript</title>
      </head>
      <body>
         <h3> Promise Chaining</h3>
         <p id ="result"></p>
         <script>
            let promise = new Promise(function (resolve, reject) {
               return resolve("My");
            }).
            then(function(firstPromise_val) {
               alert(firstPromise_val)
               return firstPromise_val+" Name";
            }).
            then(function(secondPromise_val){
               alert(secondPromise_val)
               return secondPromise_val+" is";
            }).
            then(function(thirdpromise_val){
               alert(thirdpromise_val)
               return thirdpromise_val+" Kalyan";
            }).
            then(function(thirdpromise_val){
               alert(thirdpromise_val)
               document.getElementById("result").innerHTML = thirdpromise_val
            })
         </script>
      </body>
      </html>
      

      登錄后復制

      因此,我們看到了有關其工作原理的從基礎到承諾鏈的深入概念。

      以上就是JavaScript 中的 Promise 鏈是什么?的詳細內容,更多請關注www.92cms.cn其它相關文章!

分享到:
標簽:javascript Promise
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定