Это мой код:JSON.stringify теряет/отсутствующие поля
// get from ajax
$.ajax({
'async': false,
'global': false,
'url': url,
'dataType': "json",
'success': function (d) {
data = d;
// code here to define & calculate voteCount
data.votes.totalVotes = voteCount;
localStorage.setItem(url, data);
}
, 'error': function (msg) {
throw new Error("Error retrieving data from " + url);
}
});
После этой линии:
data.votes.totalVotes = voteCount;
... в консоли, если я типа: data.votes.totalVotes
, я получаю значение Я ожидаю.
Однако, если я набираю: JSON.stringify(data)
, свойство totalVotes
нет.
Любая идея, почему бы и нет, или как ее исправить?
** примечание: отредактировано, поскольку, насколько я могу судить, это НЕ проблема асинхронности, поведение присутствует и в обратном вызове.
Добро пожаловать в чудесный мир ** async **! Вы не можете этого сделать. – SLaks
С первого взгляда это выглядит как проблема, касающаяся (а) вызовов синхронизации, но трудно сказать из данного кода. – Sirko
... так что установите $ .ajax ({/ * blah blah * /, success: function (data) {data.totalVotes = voteCount; localStorage .....}}) –