Node JS - 通过AJAX获取文件然后使用数据

时间:2012-08-12 20:34:21

标签: ajax node.js asynchronous

如何异步执行此操作?

var getData, myFunc;

getData = function() {
  var data = "";
  $.get("http://somewhere.com/data.xml", function(d) {
    data = $("#selector", d).html();
  });
  return data; // does not work, because async callback not yet fired
};

myFunc = function() {
  var data = getData();
  // do something with data here
};

我很高兴完全重新考虑实现我想要的东西。我只是不知道什么设计模式实现了这一点。

1 个答案:

答案 0 :(得分:1)

嗯,你不能。你可以回复一个承诺:

var getData, myFunc;

getData = function () {
    var d = $.Deferred();
    $.get("http://somewhere.com/data.xml", function (data) {
        d.resolve($("#selector", data).html())
    });
    return d.promise();
};

getData().then(function (data) {
    alert(data);
});

demo http://jsfiddle.net/W75Kt/2/