Tentukan tatasusunan kosong di luar, kemudian buat permintaan ajax, sarang permintaan lain di dalam permintaan itu, dan akhirnya sambungkannya kepada tiga objek dan masukkan tatasusunan kosong.
Kemudian saya mencetak panjang tatasusunan pada bahagian paling luar, dan panjang cetakan ialah 0. Masalah ini akan menjejaskan tugasan. Tolong beritahu saya bagaimana untuk menyelesaikannya.
ajax asynchrony boleh menyebabkan masalah sedemikian. Penyelesaian 1. Janji 2. Tetapkan nilai dalam panggilan balik ajax
ajax tidak segerak Apabila kod log anda dilaksanakan, ajax belum kembali.
Sila semak isu gelung acara
Kami tahu bahawa ajax ialah operasi tak segerak,
Lokasi console.log anda Pada masa ini, arr.length sebenarnya ialah [].length
Selepas js semasa anda dilaksanakan, panggilan balik kejayaan ajax akan dilaksanakan Hanya selepas panggilan balik kejayaan berjaya, tatasusunan arr anda akan ditolak ke dalam nilai
Jadi, anda mungkin mahu meletakkan console.log ke dalam panggilan balik kejayaan ajax kedua
Untuk janji, ia akan mengoptimumkan panggilan balik bersarang ini dengan baik, tetapi anda perlu merangkum ajax anda
Adalah disyorkan untuk membungkus semua ajax anda menjadi janji
ajax ialah kaedah pemerolehan data tak segerak, jadi data yang diperoleh secara tak segerak tidak boleh diproses dengan cara segerak yang biasa kami fahami Anda harus menulis console.log dalam fungsi panggil balik kejayaan.
Tetapkan async anda: palsu supaya anda boleh mendapatkan nilai di dalam dari luar.
Dalam kes ini, anda perlu menukar kepada penyegerakan ajax. Jika ia tidak segerak, ajax dan kod di belakangnya dilaksanakan pada masa yang sama