我遇到了一个非常特殊的情况。我想要通过ajax下载一些数据并且将其返回
。到目前为止,异步和同步模式都不能及时地将数据传递给返回
。我是否可以从子函数中调用返回
来解决这个问题,或者使用timeOut来解决这个问题?我无法想到其他方法,但是必须返回数据。
我遇到了一个非常特殊的情况。我想要通过ajax下载一些数据并且将其返回
。到目前为止,异步和同步模式都不能及时地将数据传递给返回
。我是否可以从子函数中调用返回
来解决这个问题,或者使用timeOut来解决这个问题?我无法想到其他方法,但是必须返回数据。
function parentfunction(callback) {
callback(getAjax());
}
function childfunction() {
parentfunction(function(ajaxData) {
//Do stuff with data
});
}
你的问题的答案是否定的。
在异步请求中,函数必须在结果可用之前返回。为了解决这个问题,采用了回调模式-在调用这样的函数时,你不会期望得到一个返回值,而是提供一个回调函数-在结果可用后调用该函数。
这里有一个简单的例子:
var someValue;
fetchValueFrom('http://example.com/some/url/with/value', function(val) {
someValue = val;
doSomethingElseWith(someValue);
});
在这里,我们创建了一个函数,并将其作为第二个参数传递给fetchValueFrom
调用。一旦该值可用,此函数将被调用,并将设置变量并调用另一个函数以继续执行。
只需将false
作为第三个参数传递给XMLHttpRequest.open
。它意味着“同步运行此查询”。
$.ajaxSetup({async:false})
能够为我工作,这样能解决我的所有问题。但是我的代码似乎忽略了它? - Kyle Hotchkiss
return
一样返回数组? - Kyle Hotchkiss