yarkov
@yarkov
Помог ответ? Отметь решением.

Как работает async/await в Node?

Пример кода:
const fs = require('fs');
const keypair = require('keypair');


console.log('Before');

async function generate(bits=2048) {
	let pair = await new Promise((res, rej) => {
		res(keypair({
			bits
		}));
	});
	console.log('Generated');
	fs.writeFileSync('./private.key', pair['private']);
	fs.writeFileSync('./public.key', pair['public']);
}

generate(2048);

console.log('After');

Результат:
$ node keypair.js
Before
# Ожидание 2-8 сек
After
Generated

А не так должно быть?
$ node keypair.js
Before
After
# Ожидание 2-8 сек
Generated
  • Вопрос задан
  • 320 просмотров
Решения вопроса 1
@Nick8
Нет, не должно быть. Промис сразу же возвращает резолв с этой функцией, которая выполняется. Чтобы было так, как ты хочешь, сама функция keypair должна возвращать промис, которого затем будет дожидаться await.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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