Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Ajax调用完成后运行函数_Javascript_Jquery_Ajax_Deferred - Fatal编程技术网

Javascript 在Ajax调用完成后运行函数

Javascript 在Ajax调用完成后运行函数,javascript,jquery,ajax,deferred,Javascript,Jquery,Ajax,Deferred,有些事情发生了,我不知道为什么会发生。我有3个功能: app.progress(); app.success(); app.normal(); 这三个选项都会更改我的应用程序中的状态块。我的另一个函数中有一个$。post,比如: app.set : function() { ... } 在我的set功能中,我想更新状态块,如下所示: app.set : function() { app.progress(); $.post('ajax.php', function(){

有些事情发生了,我不知道为什么会发生。我有3个功能:

app.progress();
app.success();
app.normal();
这三个选项都会更改我的应用程序中的状态块。我的另一个函数中有一个
$。post
,比如:

app.set : function() {
  ...
}
在我的
set
功能中,我想更新状态块,如下所示:

app.set : function() {
    app.progress();
    $.post('ajax.php', function(){
        // do stuffs
    }).done({function(){
        app.success();
        setTimeout(app.normal(), '2000');
    })
}
但不知何故,我看不到
app.success
,它会跳到
app.normal
,当我删除
app.normal
时,我可以看到
app.success


这是为什么?

您正在立即调用
app.normal
,因为在函数中添加括号时会发生这种情况,请更改以下内容:

setTimeout(app.normal(), '2000');


引用函数而不是调用它。

您正在立即调用
app.normal
,因为在函数中添加括号时会发生这种情况,请更改以下内容:

setTimeout(app.normal(), '2000');

引用函数而不是调用它