列前进,但是当遇到 setTimeout 函数时,它不会只是站在那里等待一秒钟以便可以执行代码。不,它将继续执行,并且只有在执行完成后,它才会检查事件队列并查看是否有任何要执行的回调。 在这种情况下,setTimeout 函数将在一秒后执行。这是事件循环工作原理的最基本示例。正是这种机制使 NodeJS 能够处理大量并发请求,从而使其具有极高的可扩展性和速度。
现在我们已经讨论了事件循环,涉及 NodeJS 的可扩展性和 比利时电报放映 非阻塞特性,让我们介绍一下上面描述的其他常用术语,如回调、承诺等。 回调函数 NodeJS 中的回调函数是作为参数传递给其他函数的函数,它们在主函数完成后被调用。您可以找到的最基本示例之一是超时。让我们看一个例子: // 执行异步操作的示例 函数 函数 fetchData(回调){ // 模拟 延迟 设置超时(()=> { const 数据 = { 名称:“John”, 年龄:30 }; // 使用获取的数据调用 回调 函数 回调(数据); }, 3000); } // 调用 fetchData函数 并传递回调函数 获取数据((数据)=> { console.log(数据); // { 姓名: “John”, 年龄: 30 } }); 由于 NodeJS 只是 Javascript,我们可以在浏览器控制台中使用相同的概念来轻松理解回调的工作原理。
因此,如果将此代码粘贴到浏览器控制台,则将在 3 秒后获取数据。在获取数据时,将执行其余代码。获取数据后,将调用回调函数并将数据打印到控制台。 我们之所以要提供 setTimeout 函数,是为了模拟 API 调用,因为我们不知道 API 返回需要多长时间,所以我们需要模拟这种延迟。但回调可能会失控。也许你听说过回调地狱这个术语。