我正在尝试将多个函数包装在一个函数中。
我有这样的模型:
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
中的最佳方法是什么?
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() } }))