Saya tidak mengerti mengapa
client.smembers
danclient.get
(Pencarian Redis) harus berupa panggilan balik daripada sekadar pernyataan - hal ini membuat hidup menjadi sangat rumit.
Demikianlah apa yang dimaksud dengan Node. (Saya cukup yakin bahwa topik ini telah dibahas lebih dari cukup di sini, lihat pertanyaan lain, pasti ada)
Bagaimana saya bisa yakin bahwa semua pencarian telah dilakukan sebelum memanggil
socket.broadcast
?
Itulah err
untuk dalam fungsi panggilan balik. Ini agak standar Node - parameter pertama dalam panggilan balik adalah objek kesalahan (null
jika semuanya baik-baik saja). Jadi gunakan saja sesuatu seperti ini untuk memastikan tidak ada kesalahan yang terjadi:
if (err) {
... // handle errors.
return // or not, it depends.
}
... // process results
Tapi ini sepertinya sangat berantakan.
Anda akan terbiasa. Saya sebenarnya merasa itu bagus, ketika kode diformat dengan baik dan proyek terstruktur dengan cerdas.
Cara lainnya adalah:
- Menggunakan pustaka untuk mengontrol aliran kode asinkron (Async.js, Step.js, dll.)
- Jika menurut Anda kode gaya spageti berantakan, tentukan beberapa fungsi untuk memproses hasil dan meneruskannya sebagai parameter, bukan yang anonim.