我想访问一些我声明为Ext.Ajax.request的变量(datoslicitproduct),但我在请求中初始化它。 我有这个功能:
function ExportarExcelproddet(){
var datoslicitaciones = [];
var datoslicitproduct=[];
var datafinal;
var fila=[];
var fila2=[];
var Tipo;
var IdPliego;
ExpGridstore.each(function(r){
fila.push(r.data['Tipo']);
fila.push(r.data['IdTxt']);
fila.push(r.data['Id_Exp']);
fila.push(r.data['Exp']);
fila.push(r.data['Org']);
fila.push(r.data['Fpub'].format('d/m/Y'));
fila.push(r.data['Fvto'].format('d/m/Y'));
fila.push(r.data['Estado']);
datoslicitaciones.push(fila);
fila=[];
});
var respuestaphp;
var row;
var cont=0;
while(cont<datoslicitaciones.length){
Tipo=datoslicitaciones[cont][0];
IdPliego=datoslicitaciones[cont][2];
Ext.Ajax.request({
url:'./php/ProductosDetalleExp.php',
params:{cliente:despliegue,operacion:'lote',tipo:Tipo,id:IdPliego},
success: function(response){
respuestaphp=Ext.util.JSON.decode(response.responseText);
var cont2=0;
var row;
while(cont2<respuestaphp['data'].length){
row=respuestaphp['data'][cont2];
fila2.push(row['IdExpediente']);
fila2.push(row['Nro_Orden']);
fila2.push(row['Nombre_Lote']);
fila2.push(row['Baja']);
fila2.push(row['Cotiza']);
fila2.push(row['TotLicitacionsVat']);
fila2.push(row['TotOfertasVat']);
datoslicitproduct.push(fila2);
fila2=[];
cont2++;
}
}
});
cont++;
}
console.log(datoslicitproduct);
}
当我调用console.log(datoslicitproduct)时;最后它在控制台中显示如下:
如果我尝试console.log(datoslicitproduct [0]);它说未定义,我不明白为什么。我想知道如何访问特定职位。
答案 0 :(得分:0)
Ext.Ajax.request是asynchrone,这意味着它不会停止并等待请求的返回。因此,在请求返回之前调用console.log。你必须在“成功”回调中执行此操作,这是在请求返回时调用的。