ฉันต้องการโยนข้อผิดพลาดจากตัวดำเนินการแผนที่ที่สังเกตได้ตามเงื่อนไข ตัวอย่างเช่นหากไม่ได้รับข้อมูล API ที่ถูกต้อง โปรดดูรหัสต่อไปนี้:
private userAuthenticate( email: string, password: string ) {
return this.httpPost(`${this.baseApiUrl}/auth?format=json&provider=login`, {userName: email, password: password})
.map( res => {
if ( res.bearerToken ) {
return this.saveJwt(res.bearerToken);
} else {
// THIS DOESN'T THROW ERROR --------------------
return Observable.throw('Valid token not returned');
}
})
.catch( err => Observable.throw(this.logError(err) )
.finally( () => console.log("Authentication done.") );
}
โดยทั่วไปอย่างที่คุณเห็นในโค้ดหากการตอบสนอง (วัตถุ res) ไม่มี 'bearerToken' ฉันต้องการโยนข้อผิดพลาดออกไป ดังนั้นในการสมัครสมาชิกของฉันมันจะเข้าสู่พารามิเตอร์ที่ 2 (handleError) ที่กล่าวถึงด้านล่าง
.subscribe(success, handleError)
ข้อเสนอแนะใด ๆ ?
throw 'Valid token not returned';
?