【问题标题】:Node JS - get file via AJAX and then use the dataNode JS - 通过 AJAX 获取文件然后使用数据
【发布时间】:2012-08-12 20:34:21
【问题描述】:

如何异步执行此操作?

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
};

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

【问题讨论】:

    标签: ajax node.js asynchronous


    【解决方案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);
    });
    

    演示http://jsfiddle.net/W75Kt/2/

    【讨论】:

    • id getData$(getData)?否则我看不到getData.then 将如何工作......
    • @BillyMoon 我忘记了括号,对此感到抱歉。是的,它会像这样工作jsfiddle.net/W75Kt/2
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    相关资源
    最近更新 更多