У меня возник вопрос о выходе следующего кода.переменная set для последнего значения in for loop в Javascript
var _list = [{id:0}, {id:1}, {id:2}, {id:3}, {id:4}];
function storeList() {
for (var i = 0, j = _list.length; i < j; i++) {
var key = makeKey(_list[i].id);
_db.setValue(
function() {
console.log("OK: store a value of " + key);
},
function() {
throw "ERR: can't store a value of " + key;
},
databaseName,
key,
_list[i]);
}
}
storeList();
Я ожидаю, что он должен вывести:
OK: store a value of 0
OK: store a value of 1
OK: store a value of 2
OK: store a value of 3
OK: store a value of 4
Однако, она выводит:
OK: store a value of 4
OK: store a value of 4
OK: store a value of 4
OK: store a value of 4
OK: store a value of 4
Почему? и, каков правильный способ вывода? Я запустил этот код javascript на Android Webview.
Заранее спасибо.
спасибо. На самом деле, примерно, я думал, что причина может быть такой, но я подумал, что, возможно, Javascript-движок разумен, чтобы справиться с этим для разработчиков. –