Angularjs: chain promises返回一个promise而不是一个对象
angularjs: chain promises returns a promise instead of an object
我有一个链承诺,我想返回一个对象而不是承诺。相反,我得到了一个承诺。下面是函数:
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)
返回一个对象,我得到一个承诺。我哪里错了?
谢谢
来自angular文档https://docs.angularjs.org/api/ng/service/$q
调用承诺的
then
方法将返回一个新的派生承诺,
这就是angular的写法。因此,你必须像这样访问它。
service.get.then(function(result) {
// whatever
});
您可以通过以下操作访问该值:
service.get.then(function(result) {
console.log(result);
});
相关文章:
- 将一个方法转换为promise:Nodejs
- 将其中一个异步方法重写为使用promise的方法
- 通过AngularJS promise下载一个文件
- promise.all在一个forEach循环中——所有东西都同时启动
- 多次调用promise函数,直到另一个promise函数满足条件
- 我可以克隆一个Promise吗
- 创建一个空的JavaScript Promise
- 与 promise 一起使用时,异步瀑布不执行下一个回调方法
- 使用 Promise 在另一个函数中调用带有 Bluebird 承诺库的函数
- 如何通过一个回调异步排队和执行多个promise
- 当使用promise时,为什么最后一个会被调用
- 如何访问AngularJS promise链中上一个promise的结果
- Promise.all()方法没有't解析为一个值
- Ember.js:路由返回多个模型,包括一个promise,给出错误
- Promise.promisify不是一个函数
- 在循环中使用 q promise 的最佳方法是什么?等待链完成,然后再迭代到下一个
- 如何使用 Parse.promise javascript 定义一个承诺数组并获取结果数组 [parse.com]
- 使用 Promise.map 返回一个与 bluebird “订购”的对象
- 然后,在前一个完成之前调用 Promise
- Complex Q promise:一个promise创建了一个其他promise的数组