从 mobx-state-tree 中同一模型的另一个动作调用一个动作的好习惯是什么?
What's a good practice to call an action from another action of the same model in mobx-state-tree?
我正在尝试将多个函数封装在一个函数中。
我有这样一个模型:
const CookModel = types.actions(self =>({
talkToSousChefs:() => {
// talk to sous-chefs
},
talkToWaiters: () => {
// business logic
},
talkToVendors: () => {
// business logic
},
runTalkRoutine: () => {
// current code
const root = getRoot<typeof CookModel>(self)
root.talkToSousChefs()
root.talkToVendors()
root.talkToWaiters()
// what's the best practice?
}
}))
将这些操作包装在 runTalkRoutine
中的最佳方式是什么?
这样就可以了,但我会直接使用 self
runTalkRoutine: () => {
self.talkToSousChefs()
self.talkToVendors()
self.talkToWaiters()
}
如果您的任何操作是异步的,您可以使用 yield
如果您想要自动完成,您可以将 runTalkRoutine
移动到另一个操作块
const CookModel = types.actions(self =>({
talkToSousChefs:() => {
// talk to sous-chefs
},
talkToWaiters: () => {
// business logic
},
talkToVendors: () => {
// business logic
}
})).actions(self => ({
runTalkRoutine: () => {
// here you will have autocomplete on self
self.talkToSousChefs()
self.talkToVendors()
self.talkToWaiters()
}
}))
我正在尝试将多个函数封装在一个函数中。
我有这样一个模型:
const CookModel = types.actions(self =>({
talkToSousChefs:() => {
// talk to sous-chefs
},
talkToWaiters: () => {
// business logic
},
talkToVendors: () => {
// business logic
},
runTalkRoutine: () => {
// current code
const root = getRoot<typeof CookModel>(self)
root.talkToSousChefs()
root.talkToVendors()
root.talkToWaiters()
// what's the best practice?
}
}))
将这些操作包装在 runTalkRoutine
中的最佳方式是什么?
这样就可以了,但我会直接使用 self
runTalkRoutine: () => {
self.talkToSousChefs()
self.talkToVendors()
self.talkToWaiters()
}
如果您的任何操作是异步的,您可以使用 yield
如果您想要自动完成,您可以将 runTalkRoutine
移动到另一个操作块
const CookModel = types.actions(self =>({
talkToSousChefs:() => {
// talk to sous-chefs
},
talkToWaiters: () => {
// business logic
},
talkToVendors: () => {
// business logic
}
})).actions(self => ({
runTalkRoutine: () => {
// here you will have autocomplete on self
self.talkToSousChefs()
self.talkToVendors()
self.talkToWaiters()
}
}))