遇到问题:
第一次遇到在for循环中使用request请求,一开始以为程序会默认等待for循环执行完毕后再接着往下执行。在把请求返回的数据赋值给数组时,发现好像不太对,循环了6次,就返回了两个数据,有时才返回1个数据。
原因分析:
for循环只会执行请求语句,并不是等请求数据返回后再执行下一次循环,也就是说循环结束后,可能还有一些数据还没返回,导致数组赋值的时候出现只有几个数据的现象。
解决方式:
1.在数组赋值的时候加个setTimeout,延迟1500ms再给数组赋值,但是感觉会受到网速的影响,有可能1000ms到了,数据还没完全返回。
2.在for循环中等待返回结果,当确定返回6个数据时,直接给数组赋值,不会受到网速影响而导致数组赋值不全。
总结:
1.知道了for循环并不会等待返回结果再去执行下一次循环。
2.request本身就是一个异步请求 ,第一反应就是用setTimeout、promise、async跟await去处理,但是不太熟悉后面两种方法,不过也尝试了,最后尽管没成功,但是找到了更简单的方法。