我有一个连锁承诺,我想要返回一个对象而不是一个承诺。相反,我得到了承诺。 这是功能:
self.get = function(id) {
var parameters = [id];
var orders = {}
return DBA.queryAgent("SELECT * FROM Orders WHERE " + column_id + " = ?", parameters).then(function(result) {
return DBA.getById(result);
}).then(function(result) {
order = result;
return self.getProdutcs(id);
}).then(function(result) {
order.Products = result;
return order;
});
}
我希望
service.get(1)
返回一个对象,我得到了一个承诺。我哪里错了?
谢谢
答案 0 :(得分:2)
来自角度文档https://docs.angularjs.org/api/ng/service/ $ q
调用promise的
then
方法会返回一个新的派生promise
这是写角度的方式。因此,您必须像这样访问它。
service.get.then(function(result) {
// whatever
});
答案 1 :(得分:1)
您可以通过执行以下操作来访问该值:
service.get.then(function(result) {
console.log(result);
});