angularjs:chain promises返回promise而不是object

时间:2016-10-21 13:09:14

标签: javascript angularjs angular-promise chain

我有一个连锁承诺,我想要返回一个对象而不是一个承诺。相反,我得到了承诺。 这是功能:

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)

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

谢谢

2 个答案:

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