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