一个来自《YDKJS》的例子:一个程序员开发了一个付款的系统,它良好的运行了很长时间。突然有一天,一个客户在付款的时候信用卡被连续刷了五次。这名程序员在调查了以后发现,一个第三方的工具库因为某些原因把付款回调执行了五次。在与第三方团队沟通之后问题得到了解决。
那么,问题来了
回调带来的性能问题和功能阻碍问题(bug)
- 回调过早(一般是异步被同步调用);
- 回调过晚或没有回调;
- 回调次数过多;
解决方案
- 健壮代码,增加check 带来代码量的问题
- 回避回调,改用promise
promise
在Promise的方式中,回调只负责成功之后的通知,而回调成功之后的操作放在了then的回调里面,由Promise精确控制。
//请写出输出内容
async function async1() {
console.log('async1 start');
await async2();
console.log('async1 end');
}
async function async2() {
conso