@Mazino

Как извлечь результат из асинхронной функции объекта с помощью async/await?

var sessions = [];
async function setSessionsList() {
	return new Promise((resolve,reject) => {
		connection.query('select `device_ip` from `setup_devices` where `is_enabled` = 1;', (err, data) => {
			if(err) reject(err);
			data.forEach(item => 
				sessions.push(new snmp.createSession(item.device_ip,community,options)));
			return resolve(sessions);
		});
	});
}

Как сделать тоже самое с помощью async/await, чтобы не нужно было дописывать:
setSessionsList().then( resolve => { /*Do somth... */} ).catch( reject => console.error( reject ));

такой код?
В идеале нужно чтобы было так:
function foo() {
    let data = setSessionsList();
    console.log(data);//Query result... 
}
  • Вопрос задан
  • 423 просмотра
Решения вопроса 1
john36allTa
@john36allTa
alien glow of a dirty mind
Функция описана корректно, сталось добавить await и убедиться, что он находится в async scope
async function foo(){
   let sessionsList = await setSessionsList(); //логичнее правда назвать getSessionsList
   console.log(sessionsList); // дождется результата и только потом сработает.
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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