2017-07-12 9 views
1

レスポンスにレスポンスボディにエラーコードが含まれていると、このプロミスコードを変更してエラーをスローするにはどうすればよいですか?Promise()のECMA 6の構文

return this.httpService.post('/create', data) 
         .toPromise() 
         .then(response => response.json() as CreatedResponse) 
         .catch(this.handleCreateError); 

それは私がresponse.json().hasErrorがtrueの場合、エラーをスローするように変更する必要が.then(response => response.json() as CreatedResponse)です。さもなければ、約束はただ解決するべきです。

+4

'.thenを追加します(JSON => json.hasError Promise.reject():?JSONを)' – 4castle

+0

4castle @私はあなたがコメントしたようなものを投稿しようとしていました。 – SaiUnique

答えて

3

thenコールバックにエラーが発生することがあります。ので、あなたの場合にはそれができる:

return this.httpService.post('/create', data) 
        .toPromise() 
        .then(response => response.json() as CreatedResponse) 
        .then(json => { 
         if (json.hasError) { 
          throw Error('Response is not valid'); 
         } else { 
          return json; 
         } 
        }) 
        .catch(this.handleCreateError); 
関連する問題