Javascript 嵌套回调将来/现在

Javascript 嵌套回调将来/现在,javascript,callback,Javascript,Callback,我正试图找出如何以某种方式嵌套回调 var alpha = function(callback){ var x = 5; if(x > 2){ callback(); }else if(x = 10){ callback(); }else{ future(); } }; var beta = function(callback){ var x = 5; if(x > 10){

我正试图找出如何以某种方式嵌套回调

var alpha = function(callback){
    var x = 5;
    if(x > 2){
        callback();
    }else if(x = 10){
        callback();
    }else{
        future();
    }
};

var beta = function(callback){
    var x = 5;
    if(x > 10){
        callback();
    }
}

alpha(function(){
    beta(function(){
      // also run future();
    }); 
});
假设我希望
future()
和beta的
callback()
是同一件事,或者至少在两者内部运行相同的代码。我怎样才能做到呢?请忽略我的基本
>
示例

我正在努力使我的代码更简洁。假设beta在
alpha()
中多次运行,但是
future()
函数已经赶上了beta的回调

更新

我想避免像这样多余

var alpha = function(callback){
    var x = 5;
    if(x > 2){
        //---       
        var x = 5;
        if(x > 10){
            callback();
        }
        //---
    }else if(x = 10){
        //---
        var x = 5;
        if(x > 10){
            callback();
        }
        //---
    }else{
        callback();
    }
};

您可以在代码中接受2个回调函数,也可以定义命名函数(或变量)并在beta回调中使用它

var alpha = function(callback, callback2){
    var x = 5;
    if(x > 2){
        callback();
    }else if(x = 10){
        callback();
    }else{
        callback2();
    }
};

var beta = function(callback){
    var x = 5;
    if(x > 10){
        callback();
    }
}

alpha(function(){
        beta(function(){
           future();
        }); 
    }, function future(){
    // your code here
});

您可以在代码中接受2个回调函数,也可以定义命名函数(或变量)并在beta回调中使用它

var alpha = function(callback, callback2){
    var x = 5;
    if(x > 2){
        callback();
    }else if(x = 10){
        callback();
    }else{
        callback2();
    }
};

var beta = function(callback){
    var x = 5;
    if(x > 10){
        callback();
    }
}

alpha(function(){
        beta(function(){
           future();
        }); 
    }, function future(){
    // your code here
});

我不确定我是否理解正确,但如果我理解正确,您的问题是希望在两个回调中调用某个行为。要做到这一点,您只需将该行为传递到外部回调,然后作为附加参数传递到内部回调:

var alpha = function(future, callback) {
    [...]
    else if(x == 10) {
        callback(future); // Where callback would be beta
    } else {
        future();
    }
}

alpha(future, function(future) {
    beta(function() {
        future();
    });
}

我不确定我是否理解正确,但如果我理解正确,您的问题是希望在两个回调中调用某个行为。要做到这一点,您只需将该行为传递到外部回调,然后作为附加参数传递到内部回调:

var alpha = function(future, callback) {
    [...]
    else if(x == 10) {
        callback(future); // Where callback would be beta
    } else {
        future();
    }
}

alpha(future, function(future) {
    beta(function() {
        future();
    });
}

为了澄清,您是想在
if
子句中使用相等运算符(
=
)而不是赋值(
=
)吗?为了澄清,您是想在
if
子句中使用相等运算符(
=
)而不是赋值(
=
)?