for (var key in arr) {
if (arr.hasOwnProperty(key)) {
console.log('这一次可以输出key'+key)
this.$http.post('/getPaperListByCIdAndTId', {
teacherId: window._const.teacherId,
}).then((res_in) => {
console.log('这一次不能输出key'+key)
})
}
}
Keluaran kedua ialah $remove
Atau beritahu saya cara mendapatkan kunci masuk .then
Kata kunci: penutupan
Ia akan menjadi lebih elegan untuk menggunakan array.map untuk menyelesaikannya
Ditutup, cuma gantikan var dengan let in es6
Masalah ini ialah masalah skop pembolehubah gelung biasa.
then()
中的回调被调用的时候key
可能已经循环到最后一个了(也可能是间的某个值),所以里面使用的key
值是当时的key
值。这在 ES6 中要可以用let
代替var
untuk menyelesaikannya (kerana saya nampak anda telah pun menggunakan fungsi anak panah ES6, jadi gunakan ES6 dahulu)Jika anda ingin menulis ES5, anda boleh menggunakan IIFE untuk mengelak nilai kunci setempat (dilalui melalui parameter, jadi ia tidak akan berubah)
Kaedah penulisan berfungsi yang disyorkan, ia kelihatan lebih mudah, ES6 boleh melakukannya seperti ini
ES2017 juga boleh menggunakan async, sintaksnya lebih ringkas
Saya baru sahaja mengujinya, ia berfungsi, dan anda mesti menggunakan let dan bukannya var, jika tidak, output akan menjadi kunci terakhir