Javascript-在函数1中调用函数2,然后继续

Javascript-在函数1中调用函数2,然后继续,javascript,function,Javascript,Function,可能吗?如何做到这一点?单击按钮时,我调用function1。如果条件为真(i==1),则function1暂停,只有在function2完全执行后,才会执行以下代码。例如: function1(i){ //some code here if(i == 1){ function2(i); // call function2 and waits the return to continue } //the following code } fun

可能吗?如何做到这一点?单击按钮时,我调用
function1
。如果条件为真(
i==1
),则
function1
暂停,只有在
function2
完全执行后,才会执行以下代码。例如:

function1(i){
    //some code here
    if(i == 1){
        function2(i);  // call function2 and waits the return to continue
    }
    //the following code
}

function2(i){
    //do something here and returns
}
给你:

function1(i){
    //some code here
    if(i == 1){
        function2(i);  // call function2 and waits the return to continue
    }
    //the following code
}

function2(i){
    //do something here and returns
}
如果您的意思是
function2
实际上以某种方式是异步的:

function1(i){
    //some code here
    if(i == 1){
        // call function2 and waits for return to continue
        function2(i, function() {
            // the following code
        });  
    }
    else {
        //the following code
    }
}

function2(i, callback){
    //do something async here and return when complete
    setTimeout(callback, 1000);
}

所以你认为javascript是不确定的???function1对function2的调用是同步的:它“等待”直到function2完成。您没有什么特别的事情要做。可能是因为过早接触AJAX,它破坏了他们对编程的理解。您可以尝试在function2()内发出一个简单的警报,然后在function1()调用function2()后发出警报,看看会发生什么!嘻嘻,真有趣!但是,我认为这个人正在做异步,不知道吗?如果是这样的话,我可以建议添加一个回调参数吗?它们的代码没有任何异步性。。。但是为了以防万一,我添加了一个异步示例。效果非常好!唯一的问题是我不想重复“下面的代码”,但我知道如何使其无效。谢谢你的支持!没问题。欢迎来到堆栈溢出。当你发现一个答案有帮助时,请确保投票并将其标记为答案。这样其他人就会知道你得到了帮助,如果他们有类似的问题,答案也会更简单。因为我在这里比较新,我仍然有一半迷失,但这个网站最近对我很有帮助。