我的中心是:(简化)
public string BPF(string m1, string m2)
{
r = BiPoint4Clases.BiPoint4.getString(BP4Engine.Startup.cnxString, m2);// this gets a String from SQL Server accordig query passed on m2 hub parameter.
return r;
}
catch(Exeption e)
{
// manage exeptions. ....
}
我的Javascript客户端:
function GetString(z){
bip.server.BPF("gS",z).done(function(result){array.push(result)});
}
//calling function to get string
GetString("select top 1 u from users");
alert(array);
//This returns nothing....
//function GetString, returns after .done() pushes result on array
如何等待服务器响应以调用集线器返回的JavaScript函数。
尝试$.Deferred , $.when().then
,但没有结果。
答案 0 :(得分:0)
删除javascript运行的GetString()
函数:
bip.server.BPF("gS",z).done(function(result){array.push(result)});
alert(array);
.done()
函数异步执行。这意味着脚本将直接跳转到下一个语句,即alert()
。
基本上你想要返回延迟对象,并使用它来处理回调:
function GetString(z){
return bip.server.BPF("gS",z);
}
GetString("select top 1 u from users").done(function(r) {
array.push(r);
alert(array);
});