【问题标题】:Call function only when previous is completed仅在上一个完成时调用函数
【发布时间】:2016-02-18 09:19:19
【问题描述】:

我有几个 Javascript 函数和一个按钮来一起触发它们。一些函数依赖于前一个函数生成的内容。我遇到的问题是某些功能没有触发或正确运行,因为前一个功能尚未完成(其中大部分是 ajax 调用)。那么如何确保前一个函数完成时触发一个函数呢?

我在这里找到的主题过于复杂,我无法理解,或者只是没有为我提供答案。

function CallAllFunctions(){
    function1();
    function2();
    function3();
}

非常感谢您!

【问题讨论】:

  • 你需要做function CallAllFunctions(){function1(function(){function2(function3)})}
  • 你能说得更准确点吗?用一个通用的例子来概括你的情况似乎有点复杂,主要是因为你的句子: (其中大部分是 ajax 调用) 。它们是所有 ajax 调用还是只是其中的一部分?如果是这样,您可能希望在 ajax 回调中调用下一个函数,或者,如果您只需要按特定顺序执行 N 个 ajax 请求,您可能只想正确地将 ajax 调用排队。

标签: javascript function call


【解决方案1】:

试试这个

解决方案 1

function function1(){
   // some code

}

function function2(){
   // some code
}

$.ajax({
   url:function1(),
   success:function(){
   function2();
}
})

第二个解决方案

$.when( function1() ).done(function() {
       function2();
});

看看this

【讨论】:

    【解决方案2】:

    可以在函数之后调用回调函数,

    function myDinner( param1, param2, callbackFunction ) { 
      alert( 'Started eating my dinner. \n\n It has: ' + param1 + ', ' + param2); 
      callbackFunction ();
     }
    myDinner ( 'Rice', 'Curry', function() { alert( 'Finished eating my dinner.' ); });

    This link will be helpful.

    【讨论】:

      【解决方案3】:

      如果每个 function 是一个单独的 AJAX 请求,您可以设置一个请求链并等待每个 function 成功执行。

      【讨论】:

        猜你喜欢
        • 2016-04-11
        • 2019-03-22
        • 2018-02-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多