- 我需要在表单提交按钮单击时依次调用一些函数- - func1() -> func2() -> func3() ... -> func7() -> ... 
- 所有这些功能都会进行某种验证/检查,如果验证失败,则会向用户显示确认对话框。如果用户确认,则执行队列中的下一个函数。 
- 这些函数中的任何一个都可以执行一些异步任务,例如发送 Ajax 请求,并根据结果向用户显示一些确认对话框。 
细节
我有具有以下结构的异步函数 -
function preValidateUrls(evt)
{
   evt.preventDefault();
   $.ajax({
       type: "POST",
       url: posturl+"?"+params,
       dataType: "json",
       success: function(res)
           { 
                 //display some confirmation dialog
                 if(confirm(msg)) 
                 {
                       $("form#frmBanners").submit();
                 }
            }
        });
}
我该怎么做呢?
首先,我只有两个像这样定义的同步函数 -
<form onsubmit="return func3()">
...
...
<input type="submit" onclick="return func1()"/>
</form>
- func1() 最初被调用,显示确认对话框,然后是 func2()... 
- 然后我定义了异步函数 func2() (结构与上图相同)并像这样调用它 - - $("input#formsubmitbutton").click(func2); 
但是,正如预期的那样,这不会等待 func1() 的确认。
- 如果我确实喜欢以下内容,则该函数 - func2会一次又一次地被调用-- $('form#frmBanners').submit(function() { return func2(); //这个在preValidateUrls()之后调用 }); 
我如何以一种干净的方式做到这一点,所以明天当我需要在两者之间添加任何同步/异步函数时,我只需要在一个地方进行编辑,比如 -
func1() -> func2() -> func3() ... -> func7()
PS - 我知道,如何在 javascript 中使用回调函数。