簡體   English   中英

如何在該承諾的處理程序中調用承諾?

[英]How can I call promise in handler of that promise?

什么錯誤? 我認為這段代碼必須無限輸出 22, 23, 24,25 ... 等等。

function find() {
  let numberPage = 22;
  getPromiseOpenPage(numberPage);

  function getPromiseOpenPage (numberPage) {
    return new Promise( function (resolve, reject) {
      resolve(numberPage);
    })
  }
  getPromiseOpenPage().then(
    function (res) {
      console.log(res);
      getPromiseOpenPage(res++);
    }
  )
}

您需要進行遞歸循環來處理所有無限承諾結果。

getPromiseOpenPage(res++);

您還沒有處理.then在這里(不,第一getPromiseOpenPage().then(不計,因為它是一個不同的呼叫)。

所以解決方案是這樣的:

handlePromise() {
  myPromise.then((res) => handlePromise()); // On Promise complete it will go back
                                            // to the handler.
}
handlePromise(); // Start handlePromise the first time.

您不應該將getPromiseOpenPage()作為initial函數運行

test(numberPage)您提供要迭代的初始值,它調用將返回success狀態的getPromiseOpenPage()

並且您console.log(res)響應值,並將其iterate 1並通過提供增加1的新增量值(即23 test(res)再次調用test(res)

......一次又一次地重復同樣的過程.......無限次

  const numberPage = 22;

  function getPromiseOpenPage(p) {
    return new Promise((resolve, reject) => {
      resolve(p);
    });
  }


 function test(p) {
  getPromiseOpenPage(p).then((res) => {
    console.log(res);
    res = res+1;
    test(res);
  })
}

test(numberPage);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM