使用javascript和竞争条件的执行顺序?

时间:2019-01-22 02:54:15

标签: 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。我是否遇到争用条件或按预期工作?

1 个答案:

答案 0 :(得分:0)

JS代码不会同时全部运行,您可能只是在考虑hoisting JS does with their variables and functions,因此它们不会立即引发错误。您只需要像其他编程语言一样重新组织代码-从上到下执行:

var newAcceptIndex = 0;
function addNewAccept(event) {
    newAcceptIndex += 1
    var newAccept = `some new accept ${newAcceptIndex}`
    $(event.target).closest("[id^='new_item_']").before(newAccept);
};