Mobx 状态树流。如何知道什么时候完成?
Mobx State Tree Flow. How to Know when it's done?
我正在使用 mobx 状态树和 mobx UI 东西。
现在当我将一些东西保存到数据库时,请求完成后我想更新 ui(即我的 mobx 状态)。
我需要知道流程何时结束。
myFlow: flow(function* () {
// do stuff here.
}),
现在我看到返回了一个 promise,所以我想直接做
myFlow.then()
哪个可行,但我想知道这是 属性 方式还是有其他方式可以做到这一点(async/await?或者 flow 有一些内部的东西?)
一个流 returns 一个承诺,因此任何承诺等待机制都有效:.then
、await
或 yield
在另一个 flow
中。如果你想渲染流的状态,看看mobx-utils包的mobxUtils.fromPromise(promise).case(....)
在生成器内部,您可以在最后调用一些其他操作。
在下面的示例中,我调用了 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');
}
我正在使用 mobx 状态树和 mobx UI 东西。
现在当我将一些东西保存到数据库时,请求完成后我想更新 ui(即我的 mobx 状态)。
我需要知道流程何时结束。
myFlow: flow(function* () {
// do stuff here.
}),
现在我看到返回了一个 promise,所以我想直接做
myFlow.then()
哪个可行,但我想知道这是 属性 方式还是有其他方式可以做到这一点(async/await?或者 flow 有一些内部的东西?)
一个流 returns 一个承诺,因此任何承诺等待机制都有效:.then
、await
或 yield
在另一个 flow
中。如果你想渲染流的状态,看看mobx-utils包的mobxUtils.fromPromise(promise).case(....)
在生成器内部,您可以在最后调用一些其他操作。
在下面的示例中,我调用了 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');
}