为什么nodejs的module.js里用了readFileSync而不用readFile

为什么nodejs的module.js里用了readFileSync而不用readFile,第1张

进一步说,之所以同步是 Node.js 所遵循的 CommonJS 的模块规范要求的。

在当年,CommonJS 社区对此就有很多争议,导致了坚持异步的 AMD 从 CommonJS 中分裂出来。

CommonJS

模块是同步加载和同步执行,AMD 模块是异步加载和异步执行,CMD(Sea.js)模块是异步加载和同步执行。ES6

的模块体系最后选择的是异步加载和同步执行。也就是 Sea.js 的行为是最接近 ES6 模块的。不过 Sea.js

这样做是搏丛需要付出代价的——需要扫描代码提取依赖,所以它不像 CommonJS/AMD 是纯运行时的模块系统。

注意启银拦 Sea.js 是

2010年之后开发的,提出 CMD 更晚。Node.js 当年(2009年)只有 CommonJS 和 AMD 两个选择。就算当时已经有

CMD 的等价提案,从性能角度出发,Node.js 不太可能选择需要静态分析开销的 类 CMD 方案。考悄胡虑到 Node.js

的模块是来自于本地文件系统,最后 Node.js 选择了看上去更简单的 CommonJS 模块规范,直到今天。

调起camera录了一段视频,然后读取视频文件上传到服务器

视频文件读取(同步的方式读取)

结果一直报错:

Error: readFileSync:fail timeout,

起初以为厅御档是文件太大,扮乱查了好拆启多地方都找不到答案,后来发现在调试模式下导致超时的,关闭调试即可正常。

亲测可行!!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12268538.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存