你的最后一个catch 打印一下错误信息看一下就知道 问题出在哪了
在Promise的链式调用中,只要有一次then抛出异常,就会进入catch。从打印的结果来看,并没有“发送请求了”这个打印项,所以是网络请求出问题了。
同样,try..catch
无法捕获在异步代码中引发的异常,例如setTimeout
:
try {
setTimeout(function() {
noSuchVariable; // undefined variable
}, 1000);
} catch (err) {
console.log("这里不会被执行");
}
未捕获的ReferenceError
将在1秒后引发:
➤ ⓧ Uncaught ReferenceError: noSuchVariable is not defined
所以 ,我们应该在异步代码内部使用 try..catch
来处理错误:
setTimeout(function() {
try {
noSuchVariable;
} catch(err) {
console.log("error is caught here!");
}
}, 1000);