【发布时间】:2018-12-15 20:05:21
【问题描述】:
有很多与 (a) 同步执行和承诺相关的 stackoverflow 问题,但我没有找到答案。
想象一下我有以下几点:
var number = 0;
someAsyncFunctionWithCallback(function(){
number++;
});
// ^ execute the above multiple times
由于函数每次调用的执行时间不同,回调会在不同的时间被调用。因此,我想知道变量递增线的行为会是什么。在 Java 中,我可以将变量声明为 synchronous,这样每个增量都会被考虑在内。使用上面的代码,每个数字的增量是保证还是不一定?
【问题讨论】:
-
我看不出每次执行不应该增加它的原因,问题是你想在什么时候测试它,如果你想保持它只是
++增加或实际需要的东西链式或有序 -
根据我的经验,你应该不用担心。我没有遇到问题
-
@johnSmith 我担心可能存在某种竞争条件,但下面的答案说 javascript 不执行真正的多线程,因此所有变量访问都保持同步。
标签: javascript asynchronous callback synchronization