Mobx状态树流。如何知道何时完成?

时间:2018-07-12 19:07:06

标签: javascript reactjs mobx mobx-state-tree

我正在将mobx状态树和mobx用于UI Stuff。

现在,当我将某些内容保存到数据库时,完成请求后,我想更新ui(即我的mobx状态)。

我需要知道流程何时完成。

  myFlow: flow(function* () {
          // do stuff here.
    }),

现在我看到已兑现了承诺,所以我想到了做

myFlow.then() 

哪个可行,但我想知道这是属性方式还是是否有另一种方式(异步/等待?或某些内部的流程?)

2 个答案:

答案 0 :(得分:1)

一个流返回一个诺言,因此任何诺言等待机制都起作用:另一个.then中的awaityieldflow。如果要呈现流的状态,请查看mobx-utils软件包的mobxUtils.fromPromise(promise).case(....)

答案 1 :(得分:0)

在生成器内部,您可以在最后调用其他动作。

在下面的示例中,我调用thisIsWhatYouNeed函数。生成器结束时将调用此函数。

myFlow: flow(function* () {        
  try {
    const response = yield fetch('your URL here');
    const data = yield response.json()

    // here you can call another action
    self.thisIsWhatYouNeed(data);

  } catch (error) {
    console.log('error happens');
  }
})

thisIsWhatYouNeed(data) {
  // here you have your data and know that flow is finished
  console.log('generator already finished');
}