在执行多个“shift”操作时,我需要连续地将传入的数据“推送”到数组,以便在一个函数中每3-5秒执行一次批量写入Elasticsearch。我已经看到了大量解释这些操作的文档,但对于同时执行这些操作的时间却没有任何了解。如果我同时尝试“推”和“移”,会发生什么呢?有更好的方法吗?
我使用Sitepoint和下面的链接作为我的信息:
发布于 2017-10-04 12:15:02
JS是单线程的,所以正如前面提到的,即使您有两个独立的基于计时器的操作,也不能“同时”执行push()和shift() (或任何其他操作)。如果有两个异步进程从同一个数组中添加和删除项,我认为唯一需要担心的是删除项的代码需要测试数组是否为空。-用户“nnnnnn”提供。
因此,我需要“尝试”shift()并将其推送(),直到它们没有错误地成功为止。
发布于 2017-10-04 01:34:50
你们可以这样一起做:
arr.push(arr.shift())https://stackoverflow.com/questions/46555683
复制相似问题