@axeax

Успевает ли передаться правильный запрос в движок в моем случае?

Есть кусок кода на nodejs. Приблизительно выглядит это так:
mysql.query('SELECT * FROM table WHERE id = '+arr[i]+';',  function(err, res){...});
delete arr[i];

Суть вопроса: успевает ли передаться правильный запрос в движок? Почему то через раз я получаю нулевой результат выполнения (нужная строка есть 100%, пробовал один и тот же ID выбирать.) Есть такое чувство что элемент массива удаляется раньше и в запрос идет undefined. Если после запроса убрать delete arr[i]; то всё нормально. При помещении delete arr[i]; в callback происходит тоже самое.
  • Вопрос задан
  • 2700 просмотров
Решения вопроса 1
fornit1917
@fornit1917
Оно и не должно работать, потому что так нельзя писать.
Если удаление не в каллбэке - то оно сработает раньше чем запрос и arr[i] будет undefined.
Если в каллбэке, то к моменту вызова каллбэка a[i] будет являться вообще не тем, чем вам хотелось бы, и побьются "чужие" данные.

В общем нельзя так делать, как у вас.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы