@hurgadan

Проблема с asycn/await?

День добрый.
Подскажите, что делаю не так:
(async () => {
	let testConnection = async () => {
		await seq.authenticate();
		console.log('Connection ok');
	}
	await testConnection();
})();
console.log('ttt');


Почему в консоли сначала выводится
ttt
, а уже затем
Connection ok
? Пробовал создать свой Promise в нем уже вызвать seq.authenticate() и затем свой Promise завернуть в async/await, но результат у меня получается аналогичный.
Спасибо.
  • Вопрос задан
  • 303 просмотра
Решения вопроса 3
Почему в принципе должно быть по-другому?
Вы сделали вот такое:
new Promise(function(resolve, reject) {
    seq.authenticate().then(function(result) {
        console.log("Connection ok"); 
        resolve(result);
    });
});
console.log('ttt');
Ответ написан
Ahen
@Ahen
Универсальный дилетант
Консольлог с ttt перенеси сразу за эвойт testconnection, до фигурных скобок
Ответ написан
Комментировать
DirecTwiX
@DirecTwiX
"display: flex;" уже предлагали?
Потому что
async ()
у вас вызывается асинхронно. Сам недавно разбирался. Вот этот пример должен добавить ясности:
async function test(v) {
  return new Promise(resolve => {
    setTimeout(() => {
      console.log(v);
      resolve();
    }, 2000);
  });
}

console.log('Start');
test(1);
console.log(2);

async function test2() {
  await test(3);
  console.log(4);
}

test2();

//2
//1
//3
//4
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@emp1re
Потому что console.log это синхроный метод. Если вам это что-то говорит :D
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы