NodeJS Xstate机-加载特性标志

mklgxw1f  于 2023-01-08  发布在  Node.js
关注(0)|答案(1)|浏览(128)

我们需要做的:我们需要在当前的状态机中添加一些标志
我的理想解决方案:无论处于何种状态,始终加载所有功能标志并将其分配给状态机上下文
尝试次数:尝试使用异步操作和调用服务,但是,我找不到始终运行其中任何一个的方法

这基本上是我的状态机,以及我如何设想加载特性标志,然而,invoke.src函数只是在我第一次加载状态机时第一次被调用。
每次我对状态机进行水合,并且状态机处于其中一个状态(例如create)时,invoke.src函数不会被调用,因此不会将FF加载到上下文中

const stateMachine = createStateMachine({
    id: 'state-machine',
    invoke: {
        src: async () => {
           return await featureFlagService.load();
        },
       onDone: {
         actions: assign(_context, event) => ({ featureFlagEvaluations: event.data }),
       }
    },
    states: {
        'create': { ... },
        'retrieve': { ... },
    }
});

有人知道如何实现这样的用例吗?

6yjfywim

6yjfywim1#

一旦你完成了特性标志,必须设置目标到下一个状态,这将有最新的上下文。就像

const stateMachine = createStateMachine({
    id: 'state-machine',
    invoke: {
        src: async () => {
           return await featureFlagService.load();
        },
       onDone: [{
         actions: assign(_context, event) => ({ featureFlagEvaluations: event.data }),
     target: 'create', 
       }
    }],
    states: {
        'create': { ... },
        'retrieve': { ... },
    }
});

相关问题