角度服務中的一種方法返回組件訂閱的Observable。但是在這種方法中,還有一個承諾也會被返回,並且我希望能夠抓住它,以防它返回一個拒絕。找到一塊下面的代碼:捕獲包含在observable中的promise錯誤 - angular 2
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()方法。我明白承諾是一個異步調用。有人可以建議如何重新安排代碼以捕獲服務返回的錯誤。
感謝, 阿什利
它是'set(value)'還是'set(data)'? –
@suraj是設置數據。 – ashley