由于面临这个问题,我被困了4个小时。我有此代码
var sttr = [];
this.$http
.post(this.api_url+url, data)
.then((response)=>{
sttr.push(response.data);
})
.catch((error)=>{
if(error.request.status == 401){
this.unauth();
}else{
sttr.push(error.response.data.errors);
}
});
console.log(sttr[0]);
我对成功和错误的响应都存储在sttr变量中。但是问题是当我想获取数组的第一个值时,它返回未定义的值。那么,这个问题有什么解决方案吗?
答案 0 :(得分:1)
您实际上是在响应之前返回console.log(sttr[0]);
,因为此代码是异步的。您需要将其记录在then
回调中,以确保它在收到响应后发生。
答案 1 :(得分:0)
在'then'回调中执行console.log(sttr [0])即可。 正如您在评论中说的那样,console.log(sttr)正在运行,您可以在代码的最后一部分中创建条件。
if(sttr.length) {
console.log(sttr[0]);
}