1

我正在为 UI Stuff 使用 mobx 状态树和 mobx。

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

我需要知道流程何时结束。

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

现在我看到返回了一个承诺,所以我想只是做

myFlow.then() 

哪个有效,但我想知道这是否是财产方式,或者是否有另一种方式来做到这一点(异步/等待?或流程具有的一些内部事物?)

4

2 回答 2

2

一个流返回一个承诺,所以任何承诺等待机制都可以工作:.thenawait,或yield在另一个flow。如果要渲染流的状态,请查看mobxUtils.fromPromise(promise).case(....)mobx-utils 包

于 2018-07-21T06:31:08.077 回答
1

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

在下面的示例中,我调用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');
}
于 2018-08-16T21:07:48.040 回答