bagaimana cara mendapatkan perintah "dapatkan" nilai sebenarnya bukan 'benar'?
Hai @yuany -- ini adalah pustaka Node.js tradisional di mana Anda menyediakan panggilan balik untuk dieksekusi secara asinkron ketika hasilnya sudah siap.
Yaitu:
client.get("foo", function (error, value) { /* ... */ })
Ini adalah hasil dari cara kerja Node.js, operasi IO dilakukan secara asinkron.
Nilai kembalian untuk fungsi-fungsi ini adalah _bukan_ nilainya.
Terima kasih, @brycebaril saya sudah mencoba fungsi seperti ini:
var result = client.get("foo", function (error, nilai) { nilai kembali});
alert(result);//hasilnya akan 'false' atau 'true', tetapi saya ingin mengembalikan nilai adalah nilai sebenarnya dengan kunci dari redis.
Hai @yuany -- Itu bukan cara kerja node saat melakukan IO.
Callback menyediakan konteks untuk dieksekusi ketika hasilnya tersedia. Semua kode lain yang tidak bergantung pada IO akan berjalan saat operasi IO diantrekan, dieksekusi, dan balasannya ditunggu.
Inilah tempat yang bagus untuk mempelajari lebih lanjut tentang cara kerjanya: https://github.com/maxogden/art-of-node#callbacks
Misalnya
client.get("foo", function (error, value) {
// value is only defined in the context of this callback
console.log(value)
})
// this parent code has already executed, before it asked Redis for the value
Terima kasih, @brycebaril Saya sudah jelas sekarang, masalah bahwa pelaksanaan fungsi panggilan balik tidak sinkron.
Komentar yang paling membantu
Hai @yuany -- ini adalah pustaka Node.js tradisional di mana Anda menyediakan panggilan balik untuk dieksekusi secara asinkron ketika hasilnya sudah siap.
Yaitu:
Ini adalah hasil dari cara kerja Node.js, operasi IO dilakukan secara asinkron.
Nilai kembalian untuk fungsi-fungsi ini adalah _bukan_ nilainya.