gpt4 book ai didi

javascript - 为什么 CommonJS 的 require 函数不是异步的?

转载 作者:搜寻专家 更新时间:2023-11-01 00:46:19 26 4
gpt4 key购买 nike

在加载 CommonJS 模块时,我们使用同步的 require 语句。但是加载模块不涉及从磁盘读取它们并解释它们。那么在我们提倡非阻塞 I/O 的设置中,为什么 require 是同步的?

更新:

我在客户端看到并使用过 requireJS,可以理解它的异步特性。我想知道的是,为什么在服务器中做这种事情并不普遍(我知道 requireJS 可以在 Node 中使用,但这不是重点)。

另外,我想知道在我的代码中要求内联模块是否会导致我的代码阻塞,这是否是一种不好的做法并且应该避免。

最佳答案

需要模块通常是您在程序开始时所做的事情。如果您不在程序开始时执行此操作,结果无论如何都会被缓存。像这样启动一个程序:

var fs = require('fs');
var http = require('http');
var oranges = require('oranges');

// Do stuff

会像这样开始一样工作:

require('async', function(err, async) {
async.map(['fs', 'http', 'oranges'], function(err, modules) {
var fs = modules[0], http = modules[1], oranges = modules[2];

// Do stuff
});
});

不同之处在于其中一个是不必要的复杂。是的,可能会实现某种语法糖,但它仍然没有任何好处,除非在一些微小的边缘情况下。

关于javascript - 为什么 CommonJS 的 require 函数不是异步的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13903177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com