猿问

如何从 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 变量中。但问题是当我想获取数组的第一个值时,它返回未定义的值。那么,有没有办法解决这个问题?


鸿蒙传说
浏览 564回答 2
2回答

喵喵时光机

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

慕哥6287543

我认为在“then”回调中执行 console.log(sttr[0]) 会起作用。正如您在评论中所说,console.log(sttr) 正在工作,您可以在代码的最后部分创建一个条件。if(sttr.length) {  console.log(sttr[0]);}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答