我知道这已经被问了一百万次,但我真的试图分解异步 Javascript 函数和回调,它只是没有点击。我正在查看 Max Ogden 的节点艺术示例,它是这样的:
var fs = require('fs')
var myNumber = undefined
function addOne(callback) {
fs.readFile('number.txt', function doneReading(err, fileContents) {
myNumber = parseInt(fileContents)
myNumber++
callback()
})
}
function logMyNumber() {
console.log(myNumber)
}
addOne(logMyNumber)
打破这一点,我知道当 addOne 被调用时,它首先启动,fs.ReadFile
这可能需要一些时间才能完成。
我不明白的是,代码不会继续callback()
执行logMyNumber
(之前myNumber
已添加到)吗?什么是callback()
在它应该运行之前停止运行,这就是重点?还是callback()
直到发生才doneReading
发生?我们是否应该假设doneReading
将在fs.readFile
“完成”时调用?
感谢大家耐心帮助我解决这个非常常见的问题:)