我的javascript代码中有3个函数。我想在function1和function2都执行完毕后立即调用第3个函数。
pred <- data.frame(t(matrix(pred, nrow = num.class, ncol = length(pred)/num.class)))
请注意,它们可能需要可变时间,因为函数1和2分别用于获取地理位置和一些ajax请求。
答案 0 :(得分:0)
这个怎么样?
func_one() {
// Do something
func_two();
}
func_two() {
// Do something
func_three();
}
func_three() {
// Do something
}
答案 1 :(得分:0)
有两种方法可以解决这个问题。第一种方法是创建回调函数作为现有函数的参数。
function one(param_1 .. param_n, callback) {
var response = ... // some logic
if (typeof callback === "function") {
callback(response);
}
}
第二种方法是使用Promises,如:
var p1 = new Promise(
function(resolve, reject) {
var response = ... //some logic
resolve(response);
}
}
var p2 = new Promise( ... );
p1.then(function(response1) {
p2.then(function(response2) {
//do some logic
})
})
答案 2 :(得分:0)
您可以尝试这样
var oneFinish = false;
var twoFinish = false;
function one(){
//...
oneFinish = true; // this value may depends on some logic
}
function two(){
//...
twoFinish = true; // this value may depends on some logic
}
function three(){
setInterval(function(){
if(oneFinish && twoFinish){
//...
}
}, 3000);
}
答案 3 :(得分:0)
由于您的函数func_one
和func_two
正在进行服务调用,因此您可以在上一个函数的成功回调之后调用其他函数。像
func_one().success(function(){
func_two().success(function(){
func_three();
});
});