Проблема с использованием функции forEach с запросами HTTP.Http запрос в течениеEach функция. Angular2
У меня есть _watchlistElements
переменных, которая держит следующие данные:
[{"xid":"DP_049908","name":"t10"},{"xid":"DP_928829","name":"t13"},{"xid":"DP_588690","name":"t14"},{"xid":"DP_891890","name":"t16"},{"xid":"DP_693259","name":"t17"}]
Теперь, Im делает функцию, которая будет загружать данные с сервера для каждого из этих xid
элементов:
private download() {
this._watchlistElements.forEach(v =>
this.http.get('http://localhost:8080/getValue/' + v.xid)
.subscribe(res => this._values = res.json()));
}
Он должен загружать данные как объект для каждого значения v.xid
и хранить его внутри переменной _values
.
private _values: Array<WatchlistComponent> = [];
Но каким-то образом, угловые возвращает ошибку с v.xid
элементом. Он не видит эту переменную. Но это странно, потому что, когда я делаю это просто в консоли, я имею в виду: сохранить этот json внутри переменной и использовать функцию forEach на этом элементе v.xid
, все работает хорошо.
ERROR в [по умолчанию] C: \ Users \ SRC \ приложение \ appBody \ Список наблюдения \ watchl ist.component.ts: 51: 115 Свойство 'XID' не существует на типе 'WatchlistComponent'.
xid
существует ... но внутри _watchlistElements
, который загружает данные asynchonously ...
Я не 100% уверен, что этот метод является правильным, но если у вас есть какие-либо идеи, как исправьте это, пожалуйста, скажите мне.
Если исправить мой код, как вы написали, я получаю 4 ошибки. '=' ожидаемый, не может найти имя 'as',', 'expected и' xid' не существует в WatchlistComponent. Что вы понимаете, печатая массив '_values'? Вы имеете в виду 'console.log'? У меня нет интерфейсов внутри WatchlistComponent. –
yes, 'console.log (this._values)'; Является ли строка 51 из списка наблюдения.component.ts 'this.http.get ('http: // localhost: 8080/getValue /' + v.xid)'? – joshvito
Я уверен, 'console.log' не будет работать из-за асинхронного запроса. И о вашем вопросе, да, похоже, вы написали. –