我想知道在if条件下处理异步调用的正确方法是什么。例如,我想修复以下代码。
if(criterium2){
function1(value, function(error, result){
})
}
else {
function2(value, function(error, result){
})
}
在if。
中处理异步调用的最佳方法是什么答案 0 :(得分:0)
使用Promises。如果这些函数有异步版本,那就是
var promise;
if(criterion) {
promise = function1Async(value);
}
else {
promise = function2Async(value);
}
promise.then(function(resolvedResult) {
// handle result
});
如果没有异步版本并且它们是节点样式函数,您可以使用您选择的promise库对它们进行宣传。
var Promise = require('bluebird'),
promise,
function1Async = Promise.promisify(function1),
function2Async = Promise.promisify(function2);
if(criterion) {
promise = function1Async(value);
}
else {
promise = function2Async(value);
}
promise.then(function(resolvedResult) {
// handle result
});