Nodejs回调加超时限制两种实现方法
我们可以给回调函数加一个超时限制,到一定时间还没有回调就表示失败,继续后面的步骤。在这里我用到了async的parallel方法,parallel可以让若干个异步回调的方法并行执行,正常情况下,所有回调函数都完成后会汇集到parallel最终的回调函数里,但是有一种例外,如果其中一个步骤有错误抛出并直接调用parallel最终的回调函数,利用这个特点就可以实现我们要的功能。我封装了一个函数asyncWrapper, 逻辑比较简单,直接看代码:async-timer.js你可以直接运行这个js看看效果:模块调用方法:这种方案的好处是对node没有最低版本要求,引入async库就可以用,缺陷是最终返回的值都是在一个参数里面以数组的形式呈现。在promise里面加settimeout,超过时间就reject。promise-timer.js模块调用方法:这种方案要求nodejs版本高于5.0,支持Promise。
下载地址
用户评论