nodejs中callback的两个弱点

callback那些著名的弱点我就不说了,我根据心得,补充两个弱点:

弱点1

如果你实现了一个异步函数,它是通过callback来传递返回值,如:

function my(a,b,callback){
//若干操作 
if(...){
callback(result);
}
else{
callback(result);
}
}

那么,调用时会传给你一个函数(就是形参callback对于的实参),

你要始终保证这个函数要被调用一次且仅一次,

多一次少一次都不行!

而且为了保证对外行为的一致性,这仅一次的调用,最好都是异步调用,

不要一个路径是异步调用,另一个路径又是同步调用callback

这个硬性要求,对程序复杂时,特别是程序里有循环时,不好保证呀,很容易多调一次callback,或没调用callback

多掉一次callback的后果,可以自己遐想~~~

弱点2

如果程序有异常,抛出的异常callback catch不了,

想想程序里一层层的callback,异常抛时的那次事件循环,早已不是最外面这层函数代码执行时的事件循环了。

强烈推荐promise来处理异步问题,

它不要求调用一次且仅一次

中间过程抛出异常,也会触发promise的失败函数被调用来通知你


effevo技术团队出品 (https://effevo.com
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值