javascript - 我应该返回 deferred.resolve/reject 的结果吗?

标签 javascript promise q deferred

使用 Q deferreds 时,我应该返回 deferred.resolve 和 deferred.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。但是..如果需要的话...你可以抛出一个错误。如果你想处理函数之外的事情,是的,返回错误对象,例如......就像我说的......这取决于。

关于javascript - 我应该返回 deferred.resolve/reject 的结果吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32053334/

相关文章:

javascript - 以本地用户时区显示的 ISO8601 日期时间字符串

javascript - 如何使用 gulp Replace 将字符串替换为数组中的值

javascript - 异步/等待不工作?

javascript - Node JS 请求阻塞其他请求

javascript - setTimeout 如何在 javascript 中发挥作用?

javascript - Bootstrap 下拉菜单在 Microsoft Edge 上无法正常工作

javascript - 如何在没有 'id' 的情况下获取表的行信息?

javascript - 什么是显式 promise 构造反模式以及如何避免它?

Java - 按数字和字母拆分字符串

javascript - Angular $q在http请求之前执行 "then"