我正在将mobx状态树和mobx用于UI Stuff。
现在,当我将某些内容保存到数据库时,完成请求后,我想更新ui(即我的mobx状态)。
我需要知道流程何时完成。
myFlow: flow(function* () {
// do stuff here.
}),
现在我看到已兑现了承诺,所以我想到了做
myFlow.then()
哪个可行,但我想知道这是属性方式还是是否有另一种方式(异步/等待?或某些内部的流程?)
答案 0 :(得分:1)
一个流返回一个诺言,因此任何诺言等待机制都起作用:另一个.then
中的await
,yield
或flow
。如果要呈现流的状态,请查看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');
}