Чтобы было ясно, в дополнение к ответу @SLaks, это означало, что вам нужно изменить эту строку:
List<RootObject> datalist = JsonConvert.DeserializeObject<List<RootObject>>(jsonstring);
на что-то вроде этого:
RootObject datalist = JsonConvert.DeserializeObject<RootObject>(jsonstring);
Это не имеет ничего общего с Angular, а скорее с тем, как работает Javascript. По сути, ваш код не является синхронным, как вы ожидаете, потому что ваш вызов getUserById
, скорее всего, асинхронный.
Это означает, что Javascript не будет ждать, пока не будет вызвана функция обратного вызова getUserById
. Вместо этого он просто перейдет к следующей строке кода, которая, по-видимому, в данном случае является строкой console.log(11)
, поскольку операторы if оцениваются как ложные.