代码如下:
query(){
var q=[];
currencies.forEach(function(value,index){
console.log('http://api.k780.com:88/?app=finance.rate&scur='+value.code+'&tcur=CNY&appkey=22977&sign=03ba085f4397c5700bc61eb989c17198&format=json&jsoncallback=data')
$(document).ready(function(){
$.ajax({
type : 'get',
async : false,
url : 'http://api.k780.com:88/?app=finance.rate&scur='+value.code+'&tcur=CNY&appkey=22977&sign=03ba085f4397c5700bc61eb989c17198&format=json&jsoncallback=data',
dataType : 'jsonp',
jsonp : 'callback',
jsonpCallback : 'data',
success : function(data){
console.log(data)
if(data.success!='1'){
alert(data.msgid+' '+data.msg);
}
console.log(data.result.rate);
console.log(q.push(data.result.rate));
},
error:function(){
alert('fail');
}
});
});
},this);
console.log('q'+q[0]+q[1]+q[2]);
// console.log(this.state)
// this.setState({rates:q});
}
运行截图如下:
奇怪的是我明明在 console.log(q.push(data.result.rate));这条语句中向q数组中添加了数据,然而实际上仍然都是undefined。另外语句的运行顺序也有问题(可参照截图)console.log(‘q’+q[0]+q[1]+q[2]);这条语句本应是最后一条打印,然而实际上在中间就打印出来
请问各位大佬怎么解决?我是个新手,折腾这个一天了