有一个这样的异步函数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] 删除。
我来说两句