在做项目应该会经常遇到这种场景,就是在循环中请求数据,但是由于异步的问题,会让数据错乱 比如上述代码,希望获得的数据是 [10, 1, 12, 3, 14, 5, 16, 7, 18, 9], 但是打印结果如下所示,所有异步回来的数据都被追加在了最后 解决方案 ...
经常会遇到for循环里有异步操作,比如某些条件下要去请求数据,某些条件下只是静态数据。最终得到的结果和预期的不一致。 我们期望的结果是按照循环顺序的数据结果: , , , , , , , , , 但实际输出:异步的结果被追加在了静态数据之后 那么应该如何获取想要的顺序呢 其实很简单,promise 搞定 最终结果: , , , , , , , , , 赞 ...
2021-09-22 10:39 0 154 推荐指数:
在做项目应该会经常遇到这种场景,就是在循环中请求数据,但是由于异步的问题,会让数据错乱 比如上述代码,希望获得的数据是 [10, 1, 12, 3, 14, 5, 16, 7, 18, 9], 但是打印结果如下所示,所有异步回来的数据都被追加在了最后 解决方案 ...
原因:for循环执行时不会等待异步函数执行。 解决方法: 1、改为递归函数(暂时不会)。 2、构建一个自执行函数传参(匿名函数) 参考::https://www.cnblogs.com/csuwujing/p/8021913.html 例如 for (var i = 0; i < ...
问题:(DRIVING.search是异步操作) for循环中做异步操作会导致aDistances数组里边的数据全部都是从A_SHOP_INFO数组中最后一条数据获取的值。 解决办法:可以用$.each来代替for循环 ...
https://www.cnblogs.com/vipzhou/p/6519552.html 关于for循环里面异步操作的问题 首先来看一个比较简单的问题,我们想实现的就是每隔1s输出0-4的值,就是这么简单,看下错误写法: ...
首先来看一个比较简单的问题,我们想实现的就是每隔1s输出0-4的值,就是这么简单,看下错误写法: function test() { for (var i = 0; i < 5; ++i) { setTimeout(function ...
一、使用自执行函数 1、当自执行函数在循环当中使用时,自执行函数会在循环结束之后才会运行。比如你在自执行函数外面定义一个数组,在自执行函数当中给这个数组追加内容,你在自执行函数之外输出时,会发现这个数组当中仕么都没有,这就是因为自执行函数会在循环运行完后才会执行。 2、当自执行函数 ...
如何处理循环的异步操作 先看一段代码 正确处理思路 另外还有一种递归的处理思路 原文地址:http://www.fly63.com/article/detial/6407 ...
一、什么是立即执行函数? 声明一个函数,并马上调用这个匿名函数就叫做立即执行函数;也可以说立即执行函数是一种语法,让你的函数在定义以后立即执行; 立即执行函数的创建步骤,看下图: 二、 ...