猿问

JS代码执行,会不会出现Function A()的代码执行一半,又去执行Function B()

如题,我们有一个如下的业务需求


var x=[];


function A(){

处理X

}


function B(){

也处理X

}


我现在担心,因为function A和B都在处理X,如果运行时出现交叉,就会导致一些代码逻辑问题。

在数据库中,一般是通过锁表的形式,防止X被两个操作同时修改。

但是在JS中,不知道有什么方法可以避免这种情况?

或者说,JS的代码运行方式,根本就不会出现这种情况,肯定是完整的代码块运行完,才会运行下一个代码块?


多谢


开满天机
浏览 717回答 2
2回答

跃然一笑

不会的,单线程不会出现

猛跑小猪

没有同时这概念,代码都会被执行,但不一定有结果(感觉你问的是这个)。比如function里面有异步方法的话,会出现看似A执行到某一部分执行B然后又执行A。var x = [];function A() {    setTimeout(() => {        x[0] = 'A'        setTimeout(() => { console.log('A', x) }, 0)    }, 0)}function B() {    setTimeout(() => {        x[0] = 'B'    }, 0)}A();B();解决方式就是异步流程控制的问题,搜一下一大堆。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答