Cara Mengendalikan Fungsi Panggilan Balik Asynchronous dalam JavaScript
Panggil balik tak segerak, seperti yang digunakan dalam fungsi geocoder.geocode, boleh menjadikannya mencabar untuk mendapatkan semula nilai daripada mereka. Isu ini diserlahkan dalam tajuk, "Bagaimana untuk mengembalikan nilai daripada fungsi panggil balik tak segerak?"
Memahami Panggilan Balik Asynchronous
Panggil balik tak segerak ialah fungsi yang dilaksanakan selepas beberapa masa yang tidak tentu. Ia biasanya digunakan apabila melakukan operasi yang tidak dapat diselesaikan dengan segera, seperti membuat permintaan rangkaian. Kerana sifat tak segeraknya, ia tidak boleh digunakan untuk mengembalikan nilai secara langsung.
Penyelesaian: Menggunakan Panggilan Balik
Untuk mendapatkan semula nilai daripada panggilan balik tak segerak, pendekatan alternatif ialah dengan lulus fungsi panggil balik kepada fungsi tak segerak. Fungsi panggil balik ini akan dilaksanakan sebaik sahaja operasi tak segerak selesai dan akan menerima nilai yang diingini sebagai parameter.
Contoh:
Dalam skrip yang disediakan, kod berikut boleh digunakan untuk mendapatkan semula nilai yang dikehendaki daripada geocoder.geocode fungsi:
function foo(address, callback) { geocoder.geocode({ 'address': address }, function (results, status) { callback(results[0].geometry.location); }); } foo("address", function (location) { alert(location); // This is where you receive the value });
Nota:
Adalah penting untuk ambil perhatian bahawa penyelesaian ini hanya berfungsi dengan fungsi panggil balik tak segerak. Untuk fungsi segerak, nilai boleh dikembalikan secara langsung.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai daripada Fungsi Panggilan Balik Asynchronous dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!