我目前正在嘗試編寫一個角度服務來處理第三方API。 API對象處理一切。你只需創建對象,調用它的一個函數,並獲得一個有效載荷。當我通過服務功能的調試步驟,我可以看到findRole函數內部JSON響應,但隨後就出現了錯誤:Angular - 工廠應該從第三方回調中返回值
TypeError: Cannot read property 'then' of undefined
如何使這項工作任何想法?
模塊
var angular = require('angular'),
govtracksvc = require('./rep.service'),
Rep = require('./Rep'),
govtrack = require('govtrack-node');
angular.module('RepresentativeApp', [])
.value('govtrack', govtrack)
.factory('govtracksvc', govtracksvc)
.controller('Rep', Rep);
module.exports = angular.module('RepresentativeApp');
控制器
module.exports = function Rep (govtracksvc) {
var rep = this;
rep.list = govtracksvc.findRole(rep.govtrack);
};
服務
module.exports = function govtracksvc(govtrack) {
var rep = this;
var data = {};
govtrack.findRole({current: true}, function (err, res) {
if (err) {
console.log('err: ', err);
}
return res;
}).then(function (res) {
data = res.objects;
});
return data;
};
這裏是終點,應該有人想看到的數據:https://www.govtrack.us/api/v2/role/?current=true
你能分享govtrack.findRole實施。問題可能在 – jsNovice
@iLoveJS它是第三方代碼,正如我所提到的,我可以在調試器中看到響應。如果我在響應.then()行之前檢查響應,則該包是可見的。 – Kraken
@iLoveJS萬一這有助於:https://www.npmjs.com/package/govtrack-node – Kraken