簡體   English   中英

我應該返回deferred.resolve / reject的結果嗎?

[英]Should I return the result of deferred.resolve/reject?

使用Q deferreds時,我應該返回deferred.resolvedeferred.reject的結果嗎?

function foo() {
  var deferred = Q.defer();
  service.doSomethingAsync({
    success: function() {
      deferred.resolve(); // should I return the result of resolve here?
    }, 
    fail: function(err) {
      deferred.reject(err); // should I return the result of reject here?
    }
  });

  return deferred.promise;
}

您的代碼可以更改為:

function foo() {
  var deferred = Q.defer();

  service.doSomethingAsync({
    success: deferred.resolve, 
    fail:  deferred.reject
  });

  return deferred.promise;
}

當然,要從foo()方法返回的內容取決於要實現的內容。 在許多情況下,您隱藏內部結構,僅返回一個空數組;如果出現故障,則返回null。 但是..如果需要...您可以拋出錯誤。 如果您想處理函數之外的事情,可以,例如返回錯誤對象……就像我說的那樣……要視情況而定。

暫無
暫無

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

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