【发布时间】:2013-11-15 23:23:45
【问题描述】:
我正在使用此代码从 facebook api 获取数据并使用 Durandal 显示,它工作正常。
return $.ajax({
url: 'http://graph.facebook.com/facebook?callback=?',
dataType: 'json',
}).promise();
我试图用 getJSON 做同样的事情
$.getJSON( "http://graph.facebook.com/facebook?callback=?");
我尝试了以下代码;没用。
var jqxhr = $.getJSON("http://graph.facebook.com/facebook?callback=?");
return jqxhr;
这让我从 facebook 获取数据。
但问题在于兑现承诺。由于我使用的是 durandal,因此返回一个保证模块工作的承诺很重要。
当我们使用getJSON时如何返回一个promise?
这是我的 durandal 模块
define(function (require) {
return {
getCustomers: function () {
//do some ajax and return a promise
var jqxhr = $.getJSON("http://graph.facebook.com/facebook?callback=?");
return jqxhr;
}
};
});
这就是我所说的
define(function (require) {
var backend = require('backend');
var ko = require('knockout');
return {
customers: ko.observableArray([]),
activate: function () {
var that = this;
return backend.getCustomers().then(function (result) {
var arr = [];
arr.push(result)
that.customers(arr);
});
}
};
});
【问题讨论】:
标签: javascript jquery ajax getjson promise