これは何百万回も聞かれていることは知っていますが、私は本当に非同期の Javascript 関数とコールバックを分解しようとしていて、クリックしないだけです。Max Ogden の Art of Node の例を見ています。これは次のとおりです。
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
この非常に一般的な質問を手伝ってくれてありがとうございました:)