我正在使用通量模式和通量调度程序。在创建新的 TextItem 后,我需要将“TextStore”中的值返回给操作,因为我需要在另一个商店中引用它。这是我想要做的一个非常简单的版本:
// stores.ts
var TextStore = {
add(){
// here I want to return a new ID
return createRandomID();
}
...
}
var ModuleStore = {
labelTextID; // refers to `id` on Text
...
}
// moduleactions.ts
...
import PageActions from './PageActions';
var ModuleActions = {
add: function (module) {
var textID = PageActions.add(); // here I need to get the ID of the newly create `Text`
module.labelTextID = textID;
Dispatcher.dispatch({
action: 'ADD_MODULE',
module: module
})
},
...
}
现在,当我Module通过调度动作添加一个新的时,我也想创建一个新的Text,并在之前从商店返回它新创建的 ID。
最明显的方法是要求TextStore内部ModuleActions并add()直接调用。这是否违反了通量模式?
有没有办法做到这一点,也许是通过Promise?通过调度程序向商店发送回调不起作用,因为在另一个调度未完成时我无法调度。
如果你们能帮助我,那就太好了!