我有一个非常特殊的情况。我想return
一些数据 - 通过ajax下载的数据。迄今为止同步和同步模式无法及时获取return
的数据。有可能我可以从父函数的子函数调用return
,还是timeOut可以解决问题?我想不出另一种方法,但必须返回数据。
答案 0 :(得分:3)
您可以提供回调函数:
function parentfunction(callback) {
callback(getAjax());
}
function childfunction() {
parentfunction(function(ajaxData) {
//Do stuff with data
});
}
答案 1 :(得分:2)
你问题的答案是否定的。
在异步请求中,函数必须在结果可用之前返回。为了解决这个问题,使用了一个回调模式 - 当调用这样一个函数时,你不期望返回,而是为它提供一个回调 - 一个结果可用时调用的函数。
这是一个简单的例子:
var someValue;
fetchValueFrom('http://example.com/some/url/with/value', function(val) {
someValue = val;
doSomethingElseWith(someValue);
});
这里我们创建一个函数并将其作为第二个参数传递给fetchValueFrom
调用。一旦值可用,将调用此函数,并将设置变量并调用另一个函数以继续执行。
答案 2 :(得分:-1)
只需将false
作为第三个参数传递给XMLHttpRequest.open
。这意味着“同步运行此查询”。
See the reference为你自己。