何时将 dispatch 与 alt.js Flux 一起使用

Posted

技术标签:

【中文标题】何时将 dispatch 与 alt.js Flux 一起使用【英文标题】:When to use dispatch with alt.js flux 【发布时间】:2017-01-27 17:37:47 【问题描述】:

我刚开始使用 Flux,并开始使用 alt.js 实现。我想知道什么时候我会在我的操作中使用调度。以这段代码为例。

//ImageActions.js

class ImageActions 
  getImages(id) 
    return Api.get(`topics/$id`).then(response => 
      let images = response.data.filter(image => 
        return !image.is_album;
      );
      this.updateImages(images);
    );
  
  updateImages(images) 
    return images;
  

---------------------------------------------------

//ImageStore.js
class ImageStore 
  constructor() 
    this.images = [];
    this.image = ;
    this.bindListeners(
      handleUpdateImages: ImageActions.UPDATE_IMAGES
    );
  
  handleUpdateImages(images) 
    this.images = images;
  

目前这可以在不使用 dispatch() 函数的情况下工作,如他们的教程http://alt.js.org/guide/async/ 中所见

我想知道什么时候我想这样做,调度做什么以及它与仅从 ImageaActions.js 中的 updateImages 函数返回值有何不同

【问题讨论】:

【参考方案1】:

当您的异步调用解决时,您使用dispatch。在这种情况下,它可以工作,因为当您的同步调用完成时,您正在调用另一个触发调度的操作 (updateImages),因为getImages 没有触发调度。记住异步调用的返回是一个 Promise。

【讨论】:

以上是关于何时将 dispatch 与 alt.js Flux 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

何时在 React 应用程序中使用 Dispatcher

将 async/await 与 Dispatcher.BeginInvoke() 一起使用

将 dispatch_async 与 self 一起使用

React Flux - 在调度中调度 - 如何避免?

尝试将 dispatch_async 与 cocos2d 函数一起使用时出错

GCD中的dispatch_semaphore的语法与作用