Vue中axios请求顺序问题
问题今天在写Vue时,发现有一个axios请求发送失败,因为它所需要的参数是undefined的。该参数id来自于另一个axios请求。讲道理,我在created钩子中按照如下图所示写好代码。方法getStudentInfo( )执行后会初始化当前的studentInfo对象,然后getVerify( )以该对象中的sid为参数继续发送请求,从而初始化verify对象。目前的情况是veri...
·
问题
今天在写Vue时,发现有一个axios请求发送失败,因为它所需要的参数是undefined的。该参数id来自于另一个axios请求。
讲道理,我在created钩子中按照如下图所示写好代码。
方法getStudentInfo( )执行后会初始化当前的studentInfo对象,然后getVerify( )以该对象中的sid为参数继续发送请求,从而初始化verify对象。目前的情况是verify对象始终为空,后经验证发现sid值是undefined的,导致请求发送失败。
原因
在钩子函数created中,多个axios请求的顺序并不是依照代码编写的顺序执行的。因为axios发送异步请求,所以每个请求接收到反馈的时间总不相同。事实证明,getVerify( )请求获取在getStudentInfo( )请求尚未执行完毕时就开始执行了,这小伙子急了啊!
解决方法
使用then函数处理,也可以将一个axios请求嵌套在另一个请求的处理操作中。
我在这里使用的是watch监听,当sid值发生改变时,再调用第二个请求方法。注意要设置参数immediate为true,以保证第一次改变就调用。
更多推荐
已为社区贡献1条内容
所有评论(0)