我应该返回deferred.resolve / reject的结果吗? [英] Should I return the result of deferred.resolve/reject?

查看:164
本文介绍了我应该返回deferred.resolve / reject的结果吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用Q递延时,我应该返回 deferred.resolve deferred.reject 的结果吗?

When working with Q deferreds, should I return the result of deferred.resolve and 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。但是..如果需要...您可以抛出错误。如果您想处理函数之外的事情,可以的,例如,返回错误对象……就像我说的那样……要视情况而定。

What you want to return from the foo() method depends on what you want to achieve of course. In many cases you hide the internals and just return an empty array or null if something fails. But..if it is needed...you can throw an error. If you want to handle things outside the function, yes, return the error object for example...like I said...it depends.

这篇关于我应该返回deferred.resolve / reject的结果吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆