Promise 在前端应用中是很常见的,之前也了解和总结过一篇文章 Promise 总结,而这篇总结主要就是在实际工作中,使用Promise 时遇到的一些问题总结。
then 和 catch 的回调都触发
最近在工作中,公司的一个项目上因为需求变化,所以对逻辑进行了修改。但是最后发现同样的操作在改动之前是没有问题,改动后有问题了。通过排查问题,发现是一个接口的调用时的promise then 和 catch 的回调都触发了。接口明明返回的是 200,成功的。原因和代码都总结下:
-
then 回调里的代码有错误
try { ..... that.localScreenTrack.on('track-ended', () => { that.cancelshared(); }); // 问题代码 }catch (err) { console.log(err); // TypeError: that.localScreenTrack.on is not a function }
通过 try catch 查找终于发现问题的代码了,并修复