Javascript方法同步调用没有回调和$ .ajax

时间:2014-11-19 10:56:48

标签: javascript jquery ajax synchronous jquery-callback

欢迎,

我想调用没有回调的同步javascript方法。 该方法是POST异步。

function someMethod() {
    var bean; //bean is a proxy object provide by external library
    if(clicked_onSpecial_field) {
        if(!bean.isAuthorized()) { //here is a async call
            return false;
        }  
    }

    //a lot of other instructions... 

}

通常从一只手clicked_onSpecial_field = false开始,所以我不能把所有其他指令放在回调中。 从另一只手bean是提供给我的代理对象。在这种情况下,我不知道我可以使用$.ajax

你能帮忙吗?

1 个答案:

答案 0 :(得分:1)

  

我想调用没有回调的同步javascript方法。该方法是POST异步

如果该方法本质上是异步的,则无法调用它以使其同步返回。那是完全不可能的。有关详细信息,请参阅How do I return the response from an asynchronous call?

  

通常是clicked_onSpecial_field = false所以我不能将所有其他指令放回回调中。

当然可以!

function someMethod() {
    var bean; //bean is a proxy object provide by external library
    if (clicked_onSpecial_field) {
        bean.isAuthorized(goOn); // pass goOn as callback
    } else {
        goOn(true); // just call it directly if there's no async action
    }

    function goOn(cond) {
        //a lot of other instructions... 
    }
}

请注意,someMethod现在也是异步的,所以如果你需要从中传递任何结果,那么你也需要在那里使用回调。