我正在使用此代码从 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
?
这是我的 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);
});
}
};
});