Поскольку запрос выполняется в асинхронном режиме (и вы действительно не хотите делать это в синхронном режиме, так как он замораживает браузер на все время выполнения запроса), у вас нет абсолютно никаких способ узнать, когда запрос закончен:
Вы запускаете запрос с
$.ajax({
...
});
// "here"
Но запрос выполняется в фоновом режиме и не завершается, когда вы достигаете «здесь».
Чтобы иметь возможность работать с «возвращаемым значением» запроса Ajax, вы должны выполнять всю свою работу внутри функции, включенной в событие success
(или complete
, или любое другое событие, которое вы хотите).
Вместо того, чтобы просто вставлять msg.d
в nUnratedCount
, эта функция действительно должна работать с ней (например, отображать ее в HTML-документе или все, что вы хотели сделать с этим фрагментом данных)