一般在頁面中要取DWR方法的值的做法是
function test(){
dwrTest.hello(function(data){alert(data)})
}
當你的javascript的test方法要返回這個值時就不好辦了。因爲DWR方法返回值是執行完後通過調用指定的函數將值返回。這們的話,我們往往會這麼做
function test(){
var result;
dwrTest.hello(function(data){result=data})
return result;
}
上面的代碼在使用的時候會發現它的返回值爲"undefined",分析一下
dwrTest.hello(function(data){result=data})
這一句中“function(data){result=data}"這個方法是一個傳給dwrTest.hello的一個參數,是由hello方法執行完後再調用的,所以在test()中並不會執行,就直接返回了一個未初始化的"result"。
實際上這就是一個異步處理過程,而javaScript默認是同步執行的。
我們只要把上面的代碼改成: