angularjs: chain promises returns 一个 promise 而不是一个对象

angularjs: chain promises returns a promise instead of an object

我有一个连锁承诺,我想 return 一个对象而不是一个承诺。相反,我得到了一个承诺。 这是函数:

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)

return一个对象,我得到一个承诺。我哪里错了?

谢谢

您可以通过执行以下操作来访问该值:

  service.get.then(function(result) {
    console.log(result);   
  });

来自 angular 文档 https://docs.angularjs.org/api/ng/service/$q

calling the then method of a promise returns a new derived promise,

angular就是这么写的。因此,您必须像这样访问它。

 service.get.then(function(result) {
    // whatever
  });