promise小技巧

  1. .then()中的回调可以传入两个回调函数,分别接受第一个参数和第二个回调参数
  2. 如果第一个失败的回调被错误处理回调函数捕获了,那么下面的一个.then()回调会接受一个undefined正常回调值,这不是我们想看到的结果。解决方法就是在上一个失败回调中返回一个空白的Promise对象。
fetch('/api1/search/users?id=1').then(
  reponse => {
    console.log('连接服务器成功');
    return response.json(); // response.json()返回了一个Promise对象
  },
  error => {
    console.error('链接服务器失败',error);
    return new Promise( ()=>{} ) // 这里返回新的promise是为了防止下面的`.then()`传入undefined,导致下面的.then正常执行
).then(
  response => console.log('返回数据成功');
  error => console.error('返回数据失败',error);
)
posted @ 2021-06-26 13:46  Bravo_Jack  阅读(47)  评论(0编辑  收藏  举报