只是为了确认。
假设此 Javascript 代码使用 AngularJs:
$rootScope.myNeededBoolean = false;
$rootScope.$on('userHasJustBeenAuthenticated', function(){
if(!$rootScope.myNeededBoolean) {
$rootScope.myNeededBoolean = true;
//determinant assignment to myNeededBoolean so that the following
//piece of code will be executed once and only once.
pieceOfCodeToExecuteOnlyOnce();
}
});
用于在用户登录时触发一段代码。
假设此代码由两个不同的代码同时触发(例如使用 $rootScope.$broadcast
),并专注于同一事件:userHasJustBeenAuthenticated
。
Javascript 是单线程的,我可以断言 $rootScope.$on
在 100% 的情况下将被顺序访问两次吗?
确实,我希望 $rootScope.myNeededBoolean
具有决定性,以便 pieceOfCodeToExecuteOnlyOnce
仅执行一次。
最佳答案
Javascript默认没有线程。所以代码块
if(!$rootScope.myNeededBoolean) {
$rootScope.myNeededBoolean = true;
//will execute only once
}
将在离开之前完成其执行。
关于javascript - AngularJS/这种情况绝对安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23561602/