如何在不同文件中的史诗之间共享变量?

Posted

技术标签:

【中文标题】如何在不同文件中的史诗之间共享变量?【英文标题】:How to share a variable between epics that are in different files? 【发布时间】:2021-12-17 12:40:01 【问题描述】:

我在我的nextjs 网络应用程序中使用redux-observable。有一个变量必须在epic1 中设置,稍后在epic2 中访问:

let sharedVariable;

const epic1 = (action$, state$) => 
    return action$.pipe(
        // check if the dispatched action is of type action1
        filter(action1.match),
        tap((action) => 
            // create a new instance of A and assign
            // it to sharedVariable
            if (!sharedVariable) 
                sharedVariable = new A();
            
        ),
        mergeMap((action) => 
            ...
        ),
    )


const epic2 = (action$, state$) => 
    return action$.pipe(
        // check if the dispatched action is of type action2
        filter(action2.match),
        map((action) => 
            if (sharedVariable) 
                return action3();
             else 
                return action4();
            
        ),
    )

我想将史诗放在不同的文件中:epics1.js & epics2.js

当史诗位于不同的文件中时,我应该如何让史诗设置和访问sharedVariable

提前致谢!

【问题讨论】:

【参考方案1】:

听起来像是 DI 的好案例:docs

const sharedVariable =  // can not be primitive type
const epicMiddleware = createEpicMiddleware(
  dependencies:  sharedVariable 
);

const epic2 = (action$, state$,  sharedVariable ) => 
 // Rest of code

【讨论】:

以上是关于如何在不同文件中的史诗之间共享变量?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 extern 在源文件之间共享变量?

在不同的docker容器之间共享python中的变量

Delphi XE2:在两个不同的进程之间共享一个变量?

c语言如何在多个源文件之间共享一个变量及其值?

如何在Powershell中的脚本之间共享变量?

在 angular.js 中的控制器之间共享变量