仅在EmberJS中实现多次承诺后执行代码

 好富饶_152 发布于 2023-02-11 13:24

我有一个EmberJS ArrayController.我想在这个控制器上有一个计算属性neurons,它是model属性的一个子集.子集是根据绑定到的侧边栏中的切换按钮计算的currentDataset.另一个计算属性,activePlots则取决于neurons; 该Neuron模型有一个hasMany以关系Plot,并activePlots加载所有在每个神经元对象相关联的情节对象neurons.

目前我正试图这样做mapBy,但我遇到了一个问题.每次检索一个Neuron对象都会plots返回一个PromiseArray.我需要立即操纵所有返回的图.我知道我可以调用then单个调用的promise结果get('plots'),但是如何在get('plots')所有神经元的调用返回后才执行代码?

neurons: ( ->
    @get('model').filterBy('dataset', @get('currentDataset'))
).property('model', 'currentDataset'),

activePlots: ( ->
  plots = @get('neurons').mapBy('plots')
  # ...code to execute after all plots have loaded
).property('neurons')

更新:从回调console.log(plotSets)内部到控制台输出的图片then

Ember.RSVP.all(@get('neurons').mapBy('plots')).then (plotSets) -> 
  console.log(plotSets)

在此输入图像描述

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有