promise小技巧
.then()
中的回调可以传入两个回调函数,分别接受第一个参数和第二个回调参数- 如果第一个失败的回调被错误处理回调函数捕获了,那么下面的一个
.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);
)