关于for循环中的request请求

遇到问题:

第一次遇到在for循环中使用request请求,一开始以为程序会默认等待for循环执行完毕后再接着往下执行。在把请求返回的数据赋值给数组时,发现好像不太对,循环了6次,就返回了两个数据,有时才返回1个数据。

关于for循环中的request请求_第1张图片

原因分析:

for循环只会执行请求语句,并不是等请求数据返回后再执行下一次循环,也就是说循环结束后,可能还有一些数据还没返回,导致数组赋值的时候出现只有几个数据的现象。

解决方式:

1.在数组赋值的时候加个setTimeout,延迟1500ms再给数组赋值,但是感觉会受到网速的影响,有可能1000ms到了,数据还没完全返回。

关于for循环中的request请求_第2张图片

2.在for循环中等待返回结果,当确定返回6个数据时,直接给数组赋值,不会受到网速影响而导致数组赋值不全。

关于for循环中的request请求_第3张图片

总结:

1.知道了for循环并不会等待返回结果再去执行下一次循环。

2.request本身就是一个异步请求 ,第一反应就是用setTimeout、promise、async跟await去处理,但是不太熟悉后面两种方法,不过也尝试了,最后尽管没成功,但是找到了更简单的方法。

你可能感兴趣的:(vue.js,es6)