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

最佳答案

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

08-07 20:05