javascript - 带有javascript和竞争条件的执行顺序?
问题描述
我的印象是 javascript 同时执行所有行,这是使它与许多其他编程语言不同的一件事。我有以下代码用于简单索引;
var newAcceptIndex = 0;
function addNewAccept(event) {
var newAccept = `some new accept ${newAcceptIndex}`
$(event.target).closest("[id^='new_item_']").before(newAccept);
newAcceptIndex += 1
};
我希望第一次调用时的 newAcceptIndex 为 1,因为所有代码都应同时执行,因此设置为 1 而不是 0。我遇到了竞争条件还是按预期工作?
解决方案
JS 代码不会同时运行,您可能只是在考虑提升 JS 对它们的变量和函数所做的事情,这样它们就不会立即抛出错误。您只需要像在其他编程语言中一样重新组织您的代码 - 从上到下执行:
var newAcceptIndex = 0;
function addNewAccept(event) {
newAcceptIndex += 1
var newAccept = `some new accept ${newAcceptIndex}`
$(event.target).closest("[id^='new_item_']").before(newAccept);
};
推荐阅读
- reactjs - 响应 cookie 同意未在第一次站点访问时注册
- reactjs - 在 react 中创建 PDF 并将其即时加入另一个 PDF
- r - 如何在 R 中调用重写(父)类函数?
- python - 如何使用 pyspark 流数据帧中的 writeStream 将值分成不同的列?
- angular - 从 Angular 中的另一个组件计算并在另一个字段中显示答案
- java - TomEE 8 不支持的类文件主要版本 61
- c - 如何在 C 数字上添加点
- angular - Angularfire:valuechanges observable 发出两次
- css - 我的自定义类添加了 Css Bootsraps 类
- firebase - 如何在 Flutter 中将 Stream 转换为 Listenable?