我正在浏览 Node.js 文档,但无法理解这一行:
Node.js 应用程序在单个进程中运行,无需为每个请求创建新线程。Node.js 在其标准库中提供了一组异步 I/O 原语,可防止 JavaScript 代码阻塞,并且通常 Node.js 中的库是使用非阻塞范例编写的,这使得阻塞行为成为例外而不是常态。
来源:node.js 简介
具体我没能理解:
[...]Node.js 在其标准库中提供了一组异步 I/O 原语,可防止 JavaScript 代码阻塞 [...]
这是否仅仅意味着它具有内置功能,可以提供异步工作的功能?如果不是,那么这些异步 I/O 原语集是什么?如果有人可以为我提供一些链接以更好地理解或开始使用 Node.js,那就太好了。
PS:我有 Nodejs 的实践经验,我了解它的代码如何工作,但不明白它为什么会工作,所以我想了解它的理论部分,这样我就可以了解后台实际发生的事情。
假设我正在使用一个 API 并获取其数据:
\n{USA:12,IND:21,NEP:90,ENG:81}\nRun Code Online (Sandbox Code Playgroud)\n有时数据更改为:
\n{USA:2,IND:1,NEP:0,ENG:1}\nRun Code Online (Sandbox Code Playgroud)\n等等......它的数据在不断变化,我在反应中创建了一个表,它显示这些国家/地区的数据,并在每次数据发生变化时更新表的数据。
\n现在,我想知道表如何在不重新加载页面或单击任何按钮的情况下实时更新数据,而是自行更新。
\n它是否每次都监听API,即连续进行API调用,并连续获取数据,当数据发生变化时更新组件或实际发生了什么?
\n这是面试期间向我提出的一个问题,我告诉它它正在不断调用 API,当数据更改时它会更新表,但我不确定这是否是正确的答案 \xe2\x80\xa6 或者它实际上是如何的发生?
\n如果有人能给我提供一些我可以参考的文章或为我提供解释,那就太好了。
\n如果有人需要更多信息,请告诉我。
\n假设我有一个对象数组:
var students = [{name: 'Nick',achievements: 158,points: 1473}, {name: 'Nick',achievements: '175',points: '16375'},
{name: 'Ramon',achievements: '55',points: '2025'}];
Run Code Online (Sandbox Code Playgroud)
我只想从数组中的名称 Nick 中提取点。
就像 if (name=='Nick),O/P 应该是 [1473,16375]
我试过:
var arrayPoints = students.map(function (el) {
if(el.name=='Nick'){
return el.points
}
});
Run Code Online (Sandbox Code Playgroud)
但它给了我 o/p:
console.log(arrayPoints)
[1473,16375,undefined] o/p
Run Code Online (Sandbox Code Playgroud) 这个问题已被问过多次,但我无法清楚地理解。
根据提供的答案,JavaScript 运行时意味着我们的 Javascript 代码执行的地方。
关于 Node.js 的定义,它是一个异步 javascript 运行时,这是否意味着在 Node.js 内部执行 Javascript?
另外,“Javascript运行环境”是指执行Javascript代码的环境还是机器设置?