簡體   English   中英

Javascript Promise無法解決

[英]Javascript Promise Wont Resolve

我已經編寫了以下代碼,但是它將拒絕而不是解決回調。

(function() {
  var restante = 0;
  'use strict';

  function wait() {
    return new Promise(function(done, reject) {
      setTimeout(function() {
        if (restante = 0) {
          done();
        } else {
          reject();
        }
      }, 2000);
    });
  }
  wait().
  then(function() {
    console.log("First Resolution");
  }).catch(function() {
    console.log("Error occured");
  });
})();

為什么它每次都會拒絕?

您有一個分配而不是一個比較:

if (restante = 0)

應該:

if (restante === 0)

https://jsfiddle.net/6nx92hhf/2/

在您的if語句中應為:

if (restante == 0) {
    done();
}

(更好的做法)

if (restante === 0) {
    done();
}

您的完整代碼如下所示:

(function() {
  var restante = 0;
  'use strict';

  function wait() {
    return new Promise(function(done, reject) {
      setTimeout(function() {
        if (restante == 0) {
          done();
        } else {
          reject();
        }
      }, 2000);
    });
  }
  wait().
  then(function() {
    console.log("First Resolution");
  }).catch(function() {
    console.log("Error occured");
  });
})();

條件語句需要== (或=== ),而賦值語句則包含單個=

暫無
暫無

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

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