下面的代码是人为设计的。我尽可能简化了事情,我可以问这个问题。无法通过嵌套函数调用读取未定义的属性'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此代码失败。 –