Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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 如何仅在另一个函数的执行完成后调用该函数_Javascript_Aem - Fatal编程技术网

Javascript 如何仅在另一个函数的执行完成后调用该函数

Javascript 如何仅在另一个函数的执行完成后调用该函数,javascript,aem,Javascript,Aem,在下面的代码中,我只想在存储页面属性CQ.form.slingsubaction(dialog.form,config)之后,使用函数siteadmin.reloadPages()重新加载siteadmin页面已成功执行 以下函数提交一个表单,然后调用回调()函数,该函数依次重新加载siteadmin页面: function foo(dialog, config, callback) { var action = new CQ.form.SlingSubmitAction(dialog.

在下面的代码中,我只想在存储页面属性
CQ.form.slingsubaction(dialog.form,config)之后,使用函数
siteadmin.reloadPages()
重新加载siteadmin页面已成功执行

以下函数提交一个表单,然后调用
回调()
函数,该函数依次重新加载siteadmin页面:

function foo(dialog, config, callback) {
    var action = new CQ.form.SlingSubmitAction(dialog.form, config);
    dialog.form.doAction(action);
    dialog[dialog.closeAction]();

    callback();
}
函数调用:

foo(dialog,action, function() {
    var siteAdmin = CQ.Ext.getCmp(window.CQ_SiteAdmin_id);
    siteAdmin.reloadPages();
});
问题在于,成功提交页面属性(
dialog.form
)后,站点管理页面不会重新发布。例如,加载的页面标题是旧值


如何仅在表单成功提交后重新加载siteadmin页面?

您可以尝试在配置中指定success函数,如下所示

function foo(dialog, config, callback) {
    var action = new CQ.form.SlingSubmitAction(dialog.form, {
        success: function(){
            var siteAdmin = CQ.Ext.getCmp(window.CQ_SiteAdmin_id);
            siteAdmin.reloadPages();
        }
    });
    dialog.form.doAction(action);
    dialog[dialog.closeAction]();
}
这将确保只有在请求成功后才能重新加载siteadmin


检查可用于配置的其他选项。

您可以尝试在配置中指定success函数,如下所示

function foo(dialog, config, callback) {
    var action = new CQ.form.SlingSubmitAction(dialog.form, {
        success: function(){
            var siteAdmin = CQ.Ext.getCmp(window.CQ_SiteAdmin_id);
            siteAdmin.reloadPages();
        }
    });
    dialog.form.doAction(action);
    dialog[dialog.closeAction]();
}
这将确保只有在请求成功后才能重新加载siteadmin


检查可用于配置的其他选项。

您可以尝试在配置中指定success函数,如下所示

function foo(dialog, config, callback) {
    var action = new CQ.form.SlingSubmitAction(dialog.form, {
        success: function(){
            var siteAdmin = CQ.Ext.getCmp(window.CQ_SiteAdmin_id);
            siteAdmin.reloadPages();
        }
    });
    dialog.form.doAction(action);
    dialog[dialog.closeAction]();
}
这将确保只有在请求成功后才能重新加载siteadmin


检查可用于配置的其他选项。

您可以尝试在配置中指定success函数,如下所示

function foo(dialog, config, callback) {
    var action = new CQ.form.SlingSubmitAction(dialog.form, {
        success: function(){
            var siteAdmin = CQ.Ext.getCmp(window.CQ_SiteAdmin_id);
            siteAdmin.reloadPages();
        }
    });
    dialog.form.doAction(action);
    dialog[dialog.closeAction]();
}
这将确保只有在请求成功后才能重新加载siteadmin


检查可用于配置的其他选项。

我看不到任何形式的表单提交是否成功的测试。在通过此类测试之前,您可以简单地避免调用callback()函数。或者,您可以将测试放在callback()函数中,直到测试通过后才重新加载页面。或者,您可以估计表单提交传输到Web服务器需要多长时间,以及服务器处理数据需要多长时间,然后执行以下操作:

 setTimeOut("callback();", 500); //wait 500 milliseconds (sample estimate)


注意:这假设提交的数据始终得到成功处理,但使用setTimeout()无疑是确保在调用另一个函数之前完成一个函数的一种通用方法。

我看不到任何类型的表单提交是否成功的测试。在通过此类测试之前,您可以简单地避免调用callback()函数。或者,您可以将测试放在callback()函数中,直到测试通过后才重新加载页面。或者,您可以估计表单提交传输到Web服务器需要多长时间,以及服务器处理数据需要多长时间,然后执行以下操作:

 setTimeOut("callback();", 500); //wait 500 milliseconds (sample estimate)


注意:这假设提交的数据始终得到成功处理,但使用setTimeout()无疑是确保在调用另一个函数之前完成一个函数的一种通用方法。

我看不到任何类型的表单提交是否成功的测试。在通过此类测试之前,您可以简单地避免调用callback()函数。或者,您可以将测试放在callback()函数中,直到测试通过后才重新加载页面。或者,您可以估计表单提交传输到Web服务器需要多长时间,以及服务器处理数据需要多长时间,然后执行以下操作:

 setTimeOut("callback();", 500); //wait 500 milliseconds (sample estimate)


注意:这假设提交的数据始终得到成功处理,但使用setTimeout()无疑是确保在调用另一个函数之前完成一个函数的一种通用方法。

我看不到任何类型的表单提交是否成功的测试。在通过此类测试之前,您可以简单地避免调用callback()函数。或者,您可以将测试放在callback()函数中,直到测试通过后才重新加载页面。或者,您可以估计表单提交传输到Web服务器需要多长时间,以及服务器处理数据需要多长时间,然后执行以下操作:

 setTimeOut("callback();", 500); //wait 500 milliseconds (sample estimate)


注意:这假设提交的数据始终得到成功处理,但使用setTimeout()无疑是确保在调用另一个函数之前完成一个函数的通用方法。

您应该从CQ.form.SlingSubmitAction的成功回调调用foo的回调

function foo(dialog, config, callback) {
    var action = new CQ.form.SlingSubmitAction(dialog.form, 
       {
         params: config.params,
         success: function(frm, resp) {
           callback();
         }
       });
    dialog.form.doAction(action);
    dialog[dialog.closeAction]();
}

您应该从CQ.form.SlingSubmitAction的成功回调调用foo的回调

function foo(dialog, config, callback) {
    var action = new CQ.form.SlingSubmitAction(dialog.form, 
       {
         params: config.params,
         success: function(frm, resp) {
           callback();
         }
       });
    dialog.form.doAction(action);
    dialog[dialog.closeAction]();
}

您应该从CQ.form.SlingSubmitAction的成功回调调用foo的回调

function foo(dialog, config, callback) {
    var action = new CQ.form.SlingSubmitAction(dialog.form, 
       {
         params: config.params,
         success: function(frm, resp) {
           callback();
         }
       });
    dialog.form.doAction(action);
    dialog[dialog.closeAction]();
}

您应该从CQ.form.SlingSubmitAction的成功回调调用foo的回调

function foo(dialog, config, callback) {
    var action = new CQ.form.SlingSubmitAction(dialog.form, 
       {
         params: config.params,
         success: function(frm, resp) {
           callback();
         }
       });
    dialog.form.doAction(action);
    dialog[dialog.closeAction]();
}

doAction
在异步时不接受回调本身吗?您可以在
config
中指定回调,或者
doAction
接受回调参数吗?
doAction
在异步时不接受回调本身吗?您可以在
config
中指定回调,或者
doAction
接受回调参数吗回调参数?异步时,
doAction
不接受回调本身吗?您可以在
config
中指定回调,或者
doAction
接受回调参数吗?异步时,
doAction
不接受回调本身吗?您可以在
config
中指定回调吗
doAction
接受回调参数?听起来是个好主意。我尝试了rakhi4110的建议,效果不错:)听起来是个好主意。我尝试了rakhi4110的建议,效果不错:)听起来是个好主意。我尝试了rakhi4110的建议,效果不错:)听起来是个好主意。我试过su