Вопрос по обработке переменных в асинхронных функциях.Будет ли этот код вызывать несоответствие? - PullRequest
0 голосов
/ 18 сентября 2018

Предположим, у меня есть две асинхронные функции, которые могут выполняться параллельно, и у меня есть переменная, объявленная над функциями, и эта переменная доступна и модифицируется обеими функциями, причем каждая функция не знает о другой функции.Это приведет к несоответствиям программы .. верно?например,

var password;

function async generatepassword(){

// it generates the password and stores in the variable password. 

}

function async changepassword(){

// it access and changes the variable password

}

Приведенный выше код может привести к несоответствиям переменной 'password', если обе функции вызываются асинхронно и почти параллельно?

Также, если я объявляю конкретную переменную внутриасинхронная функция, разумно ли не использовать то же имя переменной, что и другая асинхронная функция, чтобы объявить ее снова?Или переменные, объявленные внутри, имеют область видимости только внутри этой асинхронной функции?

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Да, это может привести к несогласованности, если вы как-то вызываете эти функции одну за другой без , ожидайте.Однако не стоит.

Просто назовите их так:

await generatepassword();

await changepassword();

И вы можете спать спокойно.

0 голосов
/ 18 сентября 2018

Javascript, по умолчанию, запускается в одном потоке, поэтому в момент вызова функций одна функция будет выполняться раньше другой всегда, в том же порядке, поэтому изменение каким-либо образом является неизменным, сначала применитефункция 1, а затем функция 2, без неожиданного поведения в зависимости от исполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...