如何设置时间限制以在node.js中运行异步功能?

Larry Lu

有一个这样的异步函数fun(param, callback)

fun(param, function(err){
    if(err) console.log(err);
    doSomething();
});

如何设置运行此功能的时间限制?
例如,我将时间限制设置为等于10秒。
如果在10秒内完成,则没有错误。
如果运行时间超过10秒,请终止并显示错误。

达扬·莫雷诺·莱昂

对于这种行为,承诺是理想的,您可能会遇到以下情况:

new Promise(function(resolve, reject){
   asyncFn(param, function(err, result){
        if(error){
          return reject(error);
        }
        return resolve(result)
   });

    setTimeout(function(){reject('timeout')},10000)
}).then(doSomething);

这是使用基本的ES6 Promise实现。但是,如果要包含诸如bluebird之类的东西,则可以找到功能更强大的工具或整个模块,并保证超时等功能更强大的工具。

http://bluebirdjs.com/docs/api/timeout.html

我认为这将是首选方法。希望这可以帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章