我有一个中央JavaScript函数:
function storeProperties() {
$("form#systemProperties").ajaxSubmit({
data: $("form#systemProperties").serialize(),
type: 'post',
url: '?url=super',
success: function(response) {
/* output & co */
}
});
}
这种方法有时是自己调用的,有时是用不同的方法调用的,即:
function sendMessage() {
storeProperties(); /* it's a precondition */
/* let's do some magic */
}
问题是storeProperties()
在处理ajaxSubmit
时异步完成。不幸的是,魔法不应该在storeProperties()
完成之前启动。
我怎样才能同步storeProperties()
来电或完成第二项功能?请注意,有多个功能调用storeProperties()
。
非常感谢!
答案 0 :(得分:1)
将Let's do magic功能放在单独的函数中,然后将其作为参数传递给storeProperties。即。
function storeProperties(successFunc)
{
$("form#systemProperties").ajaxSubmit
(
{
data: $("form#systemProperties").serialize(),
type: 'post',
url: '?url=super',
success: function(response)
{
/* output & co */
if(successFunc && (typeof successFunc == 'function'))
{
successFunc(response);
}
else
{
//do the default stuff
}
}
}
);
}
function sendMessage()
{
storeProperties(function(data){doTheMagic(data);});
}
function doTheMagic(data)
{
/* let's do some magic */
}
编辑:更新了storeProperties以接收函数作为参数