【问题标题】:How to chain error in Promise in Angular如何在 Angular 的 Promise 中链接错误
【发布时间】:2018-07-31 00:29:15
【问题描述】:

我目前正在编写一个 Ionic 应用程序,我需要将错误链接起来,但不知怎的,我不断得到这个

ERROR Error: Uncaught (in promise): [object Object]

当我尝试拒绝错误时。我想我一定是在某个地方做错了什么,但我不知道该怎么做。据说该错误仅在 doSomething() 方法中处理。

代码的结构是这样的:

sendRequest(...) {
    ...
    return new Promise(resolve => {
      this.http.post(this.server, body, {headers: header, withCredentials: true}).subscribe(data => {
        resolve(data);
      }, err => {
        return Promise.reject(err);
      });
    });
  }

procesRequest(...) {
    ...
    return new Promise(resolve => {
      this.sendRequest(...).then((data) => {
        resolve(data);
      }, (reason) => {
        return Promise.reject(reason);
      }).catch((error => {
        return Promise.reject(error);
      }));
    });
  }

doSomething {
    ...
    processRequest(...).then((data) => {
      this.showSuccessMessage();
    }, (err) => {
      this.showErrorMessage(err);
    }).catch((err) => {
      this.showErrorMessage(err);
    });
}

【问题讨论】:

  • 您使用的是哪个 Angular 版本?
  • Ionic 3 所以我的版本是 Angular 4

标签: angular ionic-framework promise


【解决方案1】:

基本示例如下所示:

var promise1 = new Promise(function(resolve, reject) {
    var cleanRoom = false;
  	if(!cleanRoom){
    	reject('promise1 rejected');
    }
});
var promise2 = new Promise(function(resolve, reject) {
  	if(true){
    	reject('promise2 rejected');
    }
});
function doSomething () {
	promise1.catch((rej) => {
    	console.log(rej);
    });
  	promise2.catch((rej) => {
    	console.log(rej);
    });
}
doSomething();

【讨论】:

  • 那么我如何从我的 http post 请求中接收数据?
  • 我也不确定如何将变量从外部函数传递给 Promise
猜你喜欢
  • 2015-06-18
  • 1970-01-01
  • 2018-06-30
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 2015-05-07
  • 1970-01-01
相关资源
最近更新 更多