Текст справки для require-atomic-updates говорит исключительно об утверждениях, которые устанавливают и используют одну и ту же переменную.
У меня есть какой-то старый † код, который выглядит примерно так (я думаю я включил все, что имеет отношение):
var someFunction = async function someFunction () {
switch(someVariable) {
case 0:
if (maybe) {
await doSomething();
}
break;
case 1:
//similar to above
}
someVariable = 0; // Error detected on this line
return
}
var someVariable = 0;
someFunction вызывается во время обработки некоторых событий позже, в то время как someVariable может быть отрегулирован несколькими путями кода
Насколько я могу судить, строка, в которой сообщается об ошибке , является атомарным обновлением, она не считывает значение или не устанавливает новое значение на основе чего-либо еще.
Iне могу понять, почему Эслинт считает, что здесь возможно возможное состояние гонки?
Код долгое время функционировал, поэтому я рад просто отключить правило в этой строке, чтобы он не жаловался,Но я хотел бы понять причину, по которой Эслинт это выдвинул на первый план.
† Первоначальный код был написан давно, но совсем недавно был изменен на асинхронный
.