为什么它在NodeJS中充当单身,它是如何工作的?
const io = require('socket.io')();
const singleton = module.exports = io;
实质上,如果我多次导入此文件,我会得到第一个实例化的socket.io
实例。
答案 0 :(得分:3)
模块由节点缓存。您正在返回一个实例,因此每当您require
此文件时,您每次都会获得相同的实例(io
)。这条线
const io = require('socket.io')();
仅在第一次运行此模块时运行。之后,任何需要此模块的模块都只会获得返回的实例。
以下是有关缓存的官方文档:falsey