【问题标题】:Creating HTTP Response object创建 HTTP 响应对象
【发布时间】:2018-06-25 17:51:50
【问题描述】:

在调用服务时,它使用 $http 方法调用 API。在同一个服务中,我想添加条件语句,它负责在不调用任何 API/URL 的情况下返回另一个成功或失败对象。 像这样的:

调用 someMethod()

{

if (statement true) { return httpResponseObject; }

否则{ 返回响应对象; }

}

else部分我需要以这种方式返回对象responseObject,以便它可以调用将someMethod()作为服务调用的方法的错误块。

我试过return false;return -1;,它不起作用。另外,我尝试使用XMLHttpRequest 的ResponseText,但没有奏效。

任何帮助,如何创建一个 HTTPResponse 对象,该对象可以以与 $Http 响应对象返回的相同方式使用。类似于附加快照:

【问题讨论】:

  • 您需要显示更多(实际)代码,因为您对问题的描述不清楚
  • @JaromandaX :我需要创建一个响应对象,就像 $http 响应返回的那样,但不以编程方式调用任何 API/URL。
  • 听起来过于复杂,但由于您还没有展示此功能将如何使用,所以目前还不清楚
  • 如果你想伪造 $http 响应,你需要像 $http 一样返回Promise。这个承诺可以被解决也可以被拒绝。
  • 使用$q.resolve返回一个成功的promise。使用$q.reject 返回一个被解析为rejected 的promise。有关详细信息,请参阅AngularJS $q Service API Reference

标签: angularjs angular-promise angularjs-http


【解决方案1】:

为什么不使用一个简单的promise并调用两个函数成功,错误回调之类的

someMethod().then(function(){
   //success logic
}, function(error){
   //error logic
})

您可以像 cmets 中提到的那样伪造一个 Promise,然后使用上述逻辑。

【讨论】:

    【解决方案2】:

    按照@bigless 的建议,我使用 Promise 解决了

    return (Promise.reject("Error"));
    

    它返回的对象与 $http 调用返回的对象相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-27
      • 2019-02-04
      • 2020-12-07
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多