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
子句中使用相等运算符(=
)而不是赋值(=
)?