promise 和 回调函数

本文通过一个实例介绍了回调函数可能导致的信用卡重复扣款问题,揭示了回调函数在处理异步操作时可能遇到的性能和功能问题,如回调过早、过晚或次数过多。为了解决这些问题,提出了两种方案:增强代码健壮性以增加检查,或者使用Promise来替代回调。Promise允许更精确地控制异步操作,将成功的后续操作放在`then`的回调中,降低了回调滥用的风险。
摘要由CSDN通过智能技术生成

一个来自《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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值