ember.js - EmberJS 实现多个嵌套的 Promise

标签 ember.js

我想返回一个对象数组。我的代码如下所示:

var apps = [];

    this.get('groups').then(function(groups)
    {
        groups.forEach(function(group)
        {
            self.store.find('module', group.get('module').get('id')).then(function(module)
            {
                self.store.find('app', module.get('app').get('id')).then(function(app)
                {
                    if(!apps.contains(app))
                        apps.pushObject(app);
                });
            });
        });
    });

我想在 foreach 循环完成后返回所有应用程序,但我不知道。

最佳答案

您必须始终返回一个继续构建链条的 promise 。

var self = this;

return this.get('groups')
    // Return an app for each group
    .then(function (groups) {
        return Ember.RSVP.Promise.all(groups.map(function (group) {
            return self.store.find('module', group.get('module.id'))
                .then(function (module) {
                    return self.store.find('app', module.get('app.id'));
                });
        }));
    })
    // Filter out duplicates
    .then(function (apps) {
        return apps.uniq();
    });

关于ember.js - EmberJS 实现多个嵌套的 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24104724/

相关文章:

ruby-on-rails - 有谁知道为什么 ember-data beta 6 会序列化像这样的日期属性 "1392258472591"

unit-testing - 具有关系 'needs' 的 Ember-cli 单元测试

javascript - 从路由转换不会删除 Ember.js 中退出路由的 Controller 观察者

ember.js - 对模型 Mixin 进行单元测试

ember.js - Ember 数据显示模板中 hasMany 关系的长度,无需下载该关系的所有对象

javascript - 在 Sails.js 上获取请求 Ember.js

ember.js - 是否可以在 ember.js 中为组件设置默认属性?

javascript - 无法从 JSON 创建 Ember 对象

javascript - 将 Ember.js Controller 变量设置为 Ember 数据对象,而不是 promise

javascript - emberjs 从另一个 View 锚定