如何从axios响应中获取数组值

时间:2019-07-24 16:01:36

标签: javascript arrays json vue.js axios

由于面临这个问题,我被困了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变量中。但是问题是当我想获取数组的第一个值时,它返回未定义的值。那么,这个问题有什么解决方案吗?

2 个答案:

答案 0 :(得分:1)

您实际上是在响应之前返回console.log(sttr[0]); ,因为此代码是异步的。您需要将其记录在then回调中,以确保它在收到响应后发生。

答案 1 :(得分:0)

我认为

在'then'回调中执行console.log(sttr [0])即可。 正如您在评论中说的那样,console.log(sttr)正在运行,您可以在代码的最后一部分中创建条件。

if(sttr.length) {
  console.log(sttr[0]);
}