【发布时间】:2017-09-17 02:41:11
【问题描述】:
角度服务中的一个方法返回一个组件订阅的 Observable。但是在那个方法中,也有一个返回的承诺,我希望能够抓住它,以防它返回拒绝。在下面找到一段代码:
return this.http.get(url)
.map(res => res.json())
.map((data: any) => {
try {
if (data === "14") {
this.nativeService.set(value)
.then(() => {
console.log('ok');
})
.catch((err) => { throw new Error(); //error that I want to catch
})
}
}
catch (err) {
throw new Error();
}
return data;
})
.catch((err) => this.handleError(err));
这个 nativeService 当前被模拟,它返回以下内容
set(value: any): Promise<any> {
return new Promise((resolve, reject) => {
reject('');
})
}
虽然返回了数据。然后抛出错误,我无法捕获它以调用方法 handleError()。我知道 promise 是一个异步调用。有人可以建议如何重新安排代码以捕获服务返回的错误。
谢谢, 阿什利
【问题讨论】:
-
是
set(value)还是set(data)? -
@suraj 是设置数据。
标签: angular typescript ionic-framework ionic2