javascript - Bagaimana untuk menghantar parameter penutupan panggil balik kepada pembolehubah persekitaran luaran dalam JS
typecho
typecho 2017-07-05 10:59:29
0
3
829

Seperti dalam soalan, bagaimana untuk menghantar data parameter formal dalam penutupan kepada pembolehubah luaran

var outer;
var map = new BMap.Map("allmap");
var point = new BMap.Point(116.331398,39.897445);
var gc = new BMap.Geocoder();
gc.getLocation(point, function(rs){
   var addComp = rs.addressComponents;
    //how to store this string to variable outer;
   //outer = addComp.province + ", " + addComp.city + ", " + addComp.district + ", " +      addComp.street + ", " + addComp.streetNumber);
});

Menggunakan tugasan hanya boleh memastikan bahawa data dalam penutupan adalah sah, dan ia akan menjadi tidak sah selepas keluar daripada menggunakan baru untuk memperuntukkan memori Saya kesuntukan masa dan tidak mempunyai masa untuk belajar JS, jadi saya tidak tahu malu tanya segmentfault>3<

typecho
typecho

Following the voice in heart.

membalas semua(3)
phpcn_u1582

用ajax async:false但是问题依旧? Siarkan kod dan lihat mengikut akal fikiran, ia sepatutnya OK.
Kaedah lain
1: Nilai tak segerak dan logik yang berkaitan dengan nilai tak segerak boleh diproses dalam logik janji ketika itu.
2: Gunakan penulisan penyegerakan penjana dan hasil untuk memproses logik anda
3: Anda juga boleh menggunakan fungsi async secara langsung.

淡淡烟草味

Kaedah penetapan kod anda betul yang dipanggil [tidak sah selepas keluar] mungkin merupakan masalah aliran kawalan seperti ini:

var x = 0
setTimeout(() => {
  // 这里 x 是 1
  x = 1
}, 1000)

// 这里 x 还是 0
console.log(x)

Pembolehubah gc.getLocation 如果和上面的示例一样,是一个异步调用,那么就不能按照代码书写顺序来保证代码执行顺序了。因此如果直接在后续的代码中访问 outer dalam kod anda berkemungkinan mendapat nilai lama sebelum panggilan tak segerak selesai.

阿神

Anda kini boleh mentakrifkan pembolehubah luaran di luar, seperti jenis Objek, dan kemudian menyerahkannya sebagai parameter Dengan memberikan nilai kepada Objek secara dalaman, nilai boleh dipindahkan ke luar

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!