在另一个完成时执行函数,使用 ajaxComplete()?

Adr*_*n33 3 javascript ajax jquery json

两个函数需要在 Javascript 中执行,一个应该在另一个完成时启动。

第一个用 填充一个数组getJSON,然后第二个将操作它。

但是,getJSON它是异步的,它不会暂停执行顺序以使程序正常工作,以便数组在第二个函数可以执行之前完成加载。

一个人怎么可以使用jQuery的ajaxComplete(),否则getJSON回调运行第二个功能一旦数据必须通过完成载入getJSON

谢谢。


这是代码:

function fetch_ids(user) {
  var url = 'http://test.com/ids/' + escape(user) + '.json?callback=?';
  // populate array ids[] with JSON data --uid[] array declared globally
  $.getJSON(url, function(data) {
    for (var i = 0; i < data.length; i++) ids[i] = data[i];
  });
  // test array and run alert
  for (i = 0; i < uid.length; i++) {
    for (j = 0; j < ids.length; j++) {
      if (uid[i] == ids[j]) {
        alert('matched: ' + uid[i]);
      }
    }
  }
  // finish test
}
Run Code Online (Sandbox Code Playgroud)

Seb*_*Seb 6

这行不通?

$.getJSON(url, params, function (jsonData){
  // populate array
  // call 2nd function.
});
Run Code Online (Sandbox Code Playgroud)

最坏的情况,如果您已经在别处定义了 2 个函数:

$.getJSON(url, params, function (jsonData){
  firstFunction(jsonData);
  secondFunction(jsonData);
});
Run Code Online (Sandbox Code Playgroud)