typescript 使用获取API处理500响应

oewdyzsn  于 2023-01-14  发布在  TypeScript
关注(0)|答案(2)|浏览(170)

我们有以下对fetch的调用。

this.http.fetch('flasher', { method: 'post', body: jsonPayload })
    .then(response => response.json())
    .then(data => console.log(data));

当我们收到一个200的响应时,这个方法有效,但是当我们收到一个500的响应时,控制台什么也不记录。

osh3o9ms

osh3o9ms1#

工作溶液

thencatch结合使用是有效的。

fetch('http://some-site.com/api/some.json')  
  .then(function(response) {                      // first then()
      if(response.ok)
      {
        return response.text();         
      }

      throw new Error('Something went wrong.');
  })  
  .then(function(text) {                          // second then()
    console.log('Request successful', text);  
  })  
  .catch(function(error) {                        // catch
    console.log('Request failed', error);
  });

详情

fetch()返回包含Response对象的PromisePromise可以变为已实现或已拒绝。实现运行第一个then(),返回其承诺,然后运行第二个then()。拒绝在第一个then()上引发并跳转到catch()

参考文献

MDN - Promise
MDN -检查提取是否成功
Google - Introduction to Fetch

bihw5rsg

bihw5rsg2#

只需尝试 Package 成console.log({data})之类的对象即可

相关问题