下面的代碼是人爲設計的。我儘可能簡化了事情,我可以問這個問題。無法通過嵌套函數調用讀取未定義的屬性'then'
我有一個簡單的角度服務,使API調用和返回結果:
doWork = function(reqId) {
return $http.get('/api/dowork/' + reqId).then(function(response) {
return response.data;
}).catch(function(response) {
return $q.reject(response.data);
});
}
mediumRequest = function() {
var req = 'medium';//normally do something hard to derive this value
return this.doWork(req);
}
在我的控制,我可以調用該服務的doWork功能並取回這樣一個很好的迴應:
myService.doWork('simple').then(function(response){
//do something great with response
});
但是,如果我需要調用中間方法進行預處理的要求,我得到「無法讀取屬性‘然後’未定義」:
myService.mediumRequest().then(function(response){
//do something great with response
});
爲什麼函數mediumRequest不返回doWork返回給它的承諾?
'return this.doWork(req)'? –
您可以製作一個不需要API調用的最小可重複示例嗎? –
我編輯我的示例代碼,以包含「this.doWork(req)」,因爲這是我的實際服務編碼。 @LeonardoChaia此代碼失敗。 –