1

因此,我在当前项目中有一个位置,我正在初始化一个 APN(Apple 推送通知)连接,但我需要初始化它,因为我不需要多个连接实例。目前我有一个创建连接并将我们需要的侦听器放在连接上以监视错误等的类。它看起来像这样:

export default class pushService {
    constructor(options) {
        ... check that options is proper ...

        this.apnConnection = apn.Provider(options);

        ... add listeners ...
    }

    sendMessage(message, recipents) {
        this.apnConnection.send() messages
    }
}

现在可能需要在多个位置使用它,但正如我所说,我希望整个应用程序只有一个 APN 连接的连接实例。

那么,最好在应用程序的主文件中初始化它并使其成为命名导出,还是应该以其他方式启动?如果可以避免,我认为导入整个主应用程序文件不是一个好主意,但这样做可能没有问题?

另外,如果这太主观了,我很抱歉,但我认为我还没有在这里看到过这个问题,也没有在我的谷歌搜索中回答过这个问题,而且它似乎有一个或多个好的解决方案。

4

1 回答 1

-2

我找到的最佳答案是基于这里的这篇博文:

ES6 模块 - 单实例模式

最后我的数据库连接如下所示:

let instance = null;

export class dbConnection {
    constructor() {
        if(!instance)
            instance = dbConnectionLibrary();

        return instance;
    }
}

我计划对我的推送通知服务做同样的事情,并可能扩展该 dbConnection 类以将连接添加到连接数组,因为我们有一个新要求,即在启动时需要连接多个不同的数据库。

于 2016-11-07T20:22:36.017 回答