В этом коде I:
- Получить список элементов (через AJAX)
- Получить дополнительные сведения о элементах (через 2-й вызов AJAX)
- Push item+ сведения к массиву истории
Код:
<template is="dom-repeat" items="[[history]]" index-as="index">
<p>[[item.itemId]]>
<p>[[item.priceNet]]</p>
</template>
...
getRequest() {
let request = this.$.ajax.generateRequest();
request.completes.then(req => {
// returns this.data;
this.i = 0;
console.log(this.history); // Logs several objects in array on 1st iteration
this.getRequest2();
})
}
getRequest2() {
if (this.i<this.data.length) {
this.itemId = this.data[this.i].itemId;
let request = this.$.ajax2.generateRequest();
request.completes.then(req => {
this.updateHistory();
})
}
}
updateHistory() {
if(typeof this.responseStock.error == 'undefined') {
this.push('history', {
"itemId": this.response[0][this.i].itemId,
"priceNet": this.responseStock.priceNet
})
} else {
this.push('history', {
"itemId": this.response[0][this.i].itemId,
"priceNet": null
})
}
this.i = this.i + 1;
this.getRequest2();
}
Однако при первом экземпляре история регистрирует несколько объектов в массивепоэтому метод push
не обновляется должным образом.
Как я могу передать данные таким образом, чтобы каждый элемент, возвращаемый при первом вызове AJAX, был приписан второму вызову AJAX, если атрибутысуществует, а затем отправить его в массив?
Примечание: this.push
происходит из среды Polymer, но проблема, похоже, заключается в том, что синхронизация метода push
отключена ...