首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何处理不总是返回承诺的函数?

如何处理不总是返回承诺的函数?
EN

Stack Overflow用户
提问于 2017-06-27 11:04:23
回答 2查看 69关注 0票数 0

当函数不总是返回承诺时,处理情况的最佳方法是什么?我的实际代码太复杂了,无法解释,但是问题的本质归结为检查一个条件,根据它,我要么返回一个局部变量,要么需要发送ajax请求。就像这样:

代码语言:javascript
运行
复制
function example(value){
   if(!value){
      return $http.get('www.example.com'); 
  }
   else {
      return "Your value is "+value; 
  }
}

是否有一种方法来检查函数返回的值是否是一个承诺,是否需要解决?或者还有另外一种方法来处理这种情况?谢谢您的投入!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-27 11:07:36

虽然您可以测试返回类型是否为PromisemyValue instanceof Promise,但最好只编写总是返回Promise的函数。这使得他们保持一致,更容易处理。在您的示例中,您可能需要为异步函数返回一个Promise,或者可能需要返回一个值,只需在值中使用Promise.resolve()

代码语言:javascript
运行
复制
function example(value) {
  if(!value) {
    return $http.get('www.example.com');
  } else {
    return Promise.resolve('Your value is ' + value);
  }
}

那样的话,你就不用担心它会给你带来什么了,而且你可以用一致的方式来处理它。

票数 3
EN

Stack Overflow用户

发布于 2017-06-27 11:06:22

你可以永远回报一个承诺:

代码语言:javascript
运行
复制
function example(value){
   if(!value){
      return $http.get('www.example.com'); 
   }
   else {   
      return $q.when("Your value is "+value); 
   }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44778703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档