Arrays 如何迭代AJAX调用并推送到数组
在本法典中,我:Arrays 如何迭代AJAX调用并推送到数组,arrays,ajax,polymer-2.x,Arrays,Ajax,Polymer 2.x,在本法典中,我: 获取项目列表(通过AJAX) 获取更多项目详细信息(通过第二次AJAX调用) 将项目+详细信息推送到历史记录数组 代码: [[item.itemId]]> [[item.priceNet]] getRequest(){ 让request=this.$.ajax.generateRequest(); 请求。完成。然后(请求=>{ //返回此.data; 这个。i=0; console.log(this.history);//在第一次迭代时记录数组中的多个对象 这是getRe
[[item.itemId]]>
[[item.priceNet]]
getRequest(){
让request=this.$.ajax.generateRequest();
请求。完成。然后(请求=>{
//返回此.data;
这个。i=0;
console.log(this.history);//在第一次迭代时记录数组中的多个对象
这是getRequest2();
})
}
getRequest2(){
如果(这个,我{
这个.updateHistory();
})
}
}
updateHistory(){
if(typeof this.responseStock.error==“未定义”){
这个.推('历史'){
“itemId”:this.response[0][this.i].itemId,
“priceNet”:this.responseStock.priceNet
})
}否则{
这个.推('历史'){
“itemId”:this.response[0][this.i].itemId,
“priceNet”:空
})
}
this.i=this.i+1;
这是getRequest2();
}
但是,在第一次执行时,历史记录会记录数组中的多个对象,因此push
方法不会正确更新
如何传递数据,以便第一次AJAX调用返回的每个项目都与第二次AJAX调用(如果存在属性)一起进行属性化,然后将其推送到数组中?
注意:
this.push
来自Polymer框架,但问题似乎是push
方法的计时关闭了…您正在使用req=>{}
函数,但没有对包含所有数据的req
对象执行任何操作。我不确定您的意思,但是我已经更新了问题以反映模板绑定。查看request.completes。然后(req=>{…})
您没有对req
对象执行任何操作,只是调用回调主体中的其他函数,而没有将req
对象传递给它。是req
对象包含了所有数据。
<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();
}