将web服务回调的结果绑定到Javascript中的调用函数
Tying the result of web service call back to the calling function in Javascript
我可能缺少一些简单的东西,但给定了这个JS代码:
var WS = {
whoami: function () {
var toReturn;
$.getJSON("/SecurityData/GetCurrentUser", function (data) {
toReturn = data.Email;
});
return toReturn;
}
}
当我调用它时,如果我在toReturn = data.Email
上放置了一个断点,那么预期的数据就在那里,但如果没有,WS.whoami
就没有定义。
我想这是因为$.getJSON
调用是异步的,但我如何才能获得所需的效果?
var WS = {
whoami: function () {
return $.getJSON("/SecurityData/GetCurrentUser");
}
};
WS.whoami().done(function(data){
alert(data.Email);
});
唯一的其他选择是将其作为同步请求,但我不建议这样做,因为它会对您的用户体验产生影响。您必须使用$.ajax
和async:false
更好的解决方案是用回调调用函数。这样,您的代码保持异步,并在json调用完成后继续。
var WS = {
whoami: function (callback) {
$.getJSON("/SecurityData/GetCurrentUser", callback);
}
}
WS.whoami(function(data) {
// code that uses var data
});
相关文章:
- 从javascript调用asp.net codebehind函数
- 如何使用javascript调用Php文件
- Can用户'MediaWiki上的自定义JavaScript调用Lua模块
- 从Javascript调用Applet方法
- php javascript代码从javascript调用php函数
- 是否可以从html中的javascript调用.vbs文件
- 从javascript调用C#Web服务并使用它(json格式)
- 如何用javascript调用函数,然后在滚动事件中调用该函数的特定实例
- Sinon Spy不使用Javascript调用或应用程序
- 使用javascript调用javawebservice
- 从javascript调用服务器端的下拉列表onchange函数
- 单击按钮时,使用Javascript调用并返回值
- 函数1结束后,JavaScript调用函数2
- 对wcf服务的javascript调用
- 使用JavaScript调用Excel文件
- 从JavaScript调用JAX-WSWeb服务时参数为Null
- 从javascript调用codeigniter方法并传递数据
- 使用usinf-if语句javascript调用函数
- 通过Javascript调用php文件
- 从javascript调用flash点击事件