Jak*_*son 2 javascript asynchronous node.js
我的目标是了解某些 JavaScript 函数到底是什么使它们成为异步的。你可以有这样的函数:
function someRandomFunction () {
for (let i of everything) {
iterator++
something = true
hello = that + whatever
}
}
Run Code Online (Sandbox Code Playgroud)
这个函数没有什么是异步的。它可以做很多事情,但是做起来非常快。
然后采用如下 Node.js 函数:
fs.readFile('path/to/file', (err, data) => {
// do something
})
Run Code Online (Sandbox Code Playgroud)
该函数被声明为异步的。但为什么会这样呢?其背后的原因是什么?
是否因为读取文件需要一定的时间才能完成,因此它是异步的?为什么循环某些变量并进行某些计算不是异步时是异步的?
异步的“想法”意味着“我们已经放弃了对其他一些操作代码的控制,并且我们不知道其他代码何时允许我们再次操作”。
因此,在底部示例中,您可以控制节点的文件系统操作来读取文件。我们不知道该文件有多大,因此无法预测完成需要多长时间。因此 JavaScript 允许我们提供一个“回调”,当异步操作完成时会触发该“回调”。当执行回调时,控制权返回到我们的代码。
上面的示例是同步的,因为您的代码保持对操作的控制,而 Javascript 本质上同步执行代码。
| 归档时间: |
|
| 查看次数: |
435 次 |
| 最近记录: |