Я новичок в угловом и использую angular 2 with typescript
и имею проблему с помещением значений в переменные.Как получить результат асинхронного вызова в области родительской функции
Также я видел машинопись документацию о let
и это блок обзорное: https://www.typescriptlang.org/docs/handbook/variable-declarations.html
Но проблема может быть связана с third log
вызывался перед тем second log
, который является Ajax запрос вызова сервера.
Это мой код, где я использую let
:
getData() {
let value : any;
console.log('first console log:'+value);
this.http
.get('api/get')
.map(response => response.json())
.subscribe(response => {
value = response;
console.log('second console log:'+value);
});
console.log('third console log:'+value);
}
И выход:
first console log:undefined
third console log:undefined
second console log:[object Object]
Как я получить значение ответа в переменную?
Он попадает в переменную. В «втором журнале консоли». Потому что код асинхронный. – estus
то, что здесь происходит, - это то, что он печатает первую консоль, а не напрямую печатает третью консоль и в последнем ее втором журнале печати. я столкнулся с такой же проблемой. Я думаю, что код работает async, поэтому происходит. если вы нашли какое-либо решение, пожалуйста, обновите его здесь. –
@ VinayPandya какое решение? Нет проблем/вопросов. – echonax