【问题标题】:Chaining resource in angularjsangularjs中的链接资源
【发布时间】:2013-11-03 22:35:13
【问题描述】:

我想在 AngularJS 中链接资源。

目标是资源 B 在启动前等待资源 A 的结束。

我试过了:

var p = $q.when(true);
p = p.then(function() {
    return $resource(...).query().$promise;
});
p = p.then(function() {
    return $resource(...).query().$promise;
});
p = p.then(function() {
    return $resource(...).query().$promise;
});

关键是调用不是同步的。

【问题讨论】:

    标签: javascript angularjs asynchronous promise


    【解决方案1】:

    有一种方法可以使用$q.all 对许多异步调用进行分组。这方面的文档是here

    $q.all() 将允许您发送所有查询,然后在解决组合承诺之前等待它们全部返回。但是,如果您希望查询按特定顺序发生,这可能行不通。

    希望这会有所帮助。

    【讨论】:

    • 这与$q.all 一起工作正常,但你确定query 会返回一个承诺。在我的脑海中并不清楚。 “重要的是要意识到调用 $resource 对象方法会立即返回一个空引用(对象或数组取决于 isArray)。一旦从服务器返回数据,现有引用就会填充实际数据。”
    • 在第二次阅读文档时,我认为您使用$promise 是正确的。我会稍微改变一下答案。
    猜你喜欢
    • 2013-12-26
    • 2010-09-06
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 1970-01-01
    • 2010-10-03
    • 1970-01-01
    相关资源
    最近更新 更多