Angularjs: chain promises返回一个promise而不是一个对象

angularjs: chain promises returns a promise instead of an object

本文关键字:promise 一个 一个对象 chain promises 返回 Angularjs      更新时间:2023-09-26

我有一个链承诺,我想返回一个对象而不是承诺。相反,我得到了一个承诺。下面是函数:

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);   
  });