问题

今天在写Vue时,发现有一个axios请求发送失败,因为它所需要的参数是undefined的。该参数id来自于另一个axios请求。
讲道理,我在created钩子中按照如下图所示写好代码。
Vue中axios请求顺序问题
方法getStudentInfo( )执行后会初始化当前的studentInfo对象,然后getVerify( )以该对象中的sid为参数继续发送请求,从而初始化verify对象。目前的情况是verify对象始终为空,后经验证发现sid值是undefined的,导致请求发送失败。

原因

在钩子函数created中,多个axios请求的顺序并不是依照代码编写的顺序执行的。因为axios发送异步请求,所以每个请求接收到反馈的时间总不相同。事实证明,getVerify( )请求获取在getStudentInfo( )请求尚未执行完毕时就开始执行了,这小伙子急了啊!

解决方法

使用then函数处理,也可以将一个axios请求嵌套在另一个请求的处理操作中。
我在这里使用的是watch监听,当sid值发生改变时,再调用第二个请求方法。注意要设置参数immediate为true,以保证第一次改变就调用。

相关文章:

  • 2023-02-10
  • 2022-12-23
  • 2021-11-04
  • 2021-12-03
  • 2021-12-14
  • 2021-09-21
  • 2021-07-03
  • 2021-12-27
猜你喜欢
  • 2022-12-23
  • 2021-06-10
  • 2021-04-11
  • 2022-12-23
  • 2021-10-09
  • 2021-08-06
  • 2022-12-23
相关资源
相似解决方案