Promise()的ECMA 6语法

时间:2017-07-12 05:56:42

标签: angular typescript ecmascript-6

如果响应在响应正文中包含一些错误代码,我如何修改此保证代码以引发错误?

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

如果.then(response => response.json() as CreatedResponse)为真,我需要修改response.json().hasError以抛出错误。否则承诺应该解决。

1 个答案:

答案 0 :(得分: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);