2017-07-28 4 views
1

私は要求を行い、観察機能、持っている:として、私は次のように、この観測可能を取るObservable Httpでカスタムキャッチエラーを返すには?

public send(): Observable<ISms[]> { 

    if (this.usedAttempts < this.maxAttempts) { 
     return; // Here return custom error 
    } 
} 

を:

this.sms.send().subscribe(
     response => { 
     console.log(response); 
     }, 
     error => { 
     console.log(error); 
     } 
    ); 
    } 

私はそれ以外の場合はエラーを返し、そう、送信した場合、ユーザーはSMSを送信することができますかどうかを確認する必要があります。

答えて

3

だけthrow()演算子を使用します。

if (this.usedAttempts < this.maxAttempts) { 
    return Observable.throw('error description'); 
} 

それをインポートすることを忘れないでください:

発光する観測を作成します。

ここ
import 'rxjs/add/observable/throw'; 

the docs sayとは何かオブザーバーにはアイテムがありません。 はすぐにエラー通知を出します。

+0

これは正しい方法ですか、それともより良い分離された方法ですか? – Daniel

+0

@Daniel、それは主観的ですが、 'if(this.sms.canSend()){this.sms.send()}'のように、表現力豊かな別のメソッドを作成することができます。しかし、サーバがいくつかのバリデーションを実行し、同じエラーを返す場合は、 'send'メソッドの中にチェックを残します –

2
public send(): Observable<ISms[]> { 

    if (this.usedAttempts < this.maxAttempts) { 
     return Observable.throw(customError) 
    } 
} 
関連する問題