Я делаю угловое приложение, в котором я делаю сервисный вызов как,
let newValue = this.dynamicService.getRest(element.optionsUrl,localStorage.getItem('token')).toPromise();
и console.log(newValue)
дает,
{"__zone_symbol__state":null,"__zone_symbol__value":[]}
Здесь мне нужно сохранить значениеиз службы в переменную newValue
.
При использовании toPromise.then.toPromise().then(function (result) { })
также я получаю тот же результат.
Пожалуйста, помогите мне сохранить значения службы с помощью toPromise()
дляпеременная newValue
..
Редактировать:
Конструктор:
constructor(private http: HttpClient, private dynamicService: NgiDynamicFormsService) {
this.newArray = AppConfig.settings.template.templateFormJSON;
}
Async getQuestions ()
async getQuestions() {
let questions: any = [];
this.newArray.forEach(element => {
if (element.elementType === 'textbox') {
questions.push(new TextboxQuestion(element));
} else if (element.elementType === 'dropdown') {
let newValue = await this.dynamicService.getRest(element.optionsUrl,localStorage.getItem('token')).toPromise();
element.options = newValue;
questions.push(new DropdownQuestion(element));
} else if (element.elementType === 'textarea') {
questions.push(new TextareaQuestion(element));
} else if (element.elementType === 'checkbox') {
questions.push(new CheckboxQuestion(element));
}
});
return questions.sort((a, b) => a.order - b.order);
}
Здесь вы можете видеть, что после получения newValue
мне нужно отправить значения из newValue
в element.options
.. А позже мне нужно позвонить questions.push(new DropdownQuestion(element));
для этого я не могу получить значение в newValue
, и поэтому questions.push(new DropdownQuestion(element))
дает пустые значения, поэтому после сохранения значения в newValue
мне нужно вызвать это значение, questions.push(new DropdownQuestion(element))
Мне нужно сделать этот вызов внутри forEach
функции, поэтому, если я использую await , он выдаст ошибку IDE как,
[ts] 'await' expression is only allowed within an async function...