async function getResult(){
let connection;
try {
connection = await mysql.createConnection(dbConfig);
const result = await connection.query('select height from users where pin=1100');
console.log(result[0].height);
return result[0].height;
} finally {
if (connection && connection.end) connection.end();
}
}
Rozwiązuje następujące problemy:
- Jeśli możesz używać async/await, nie ma sensu nadal używać
then
w takich sytuacjach.. - Nie musisz
stringify
formatu JSON iparse
jeśli coś rejestrujesz. - Jeśli złapiesz błąd, aby zamknąć połączenie, naprawdę powinieneś zgłosić go ponownie, aby funkcja wywołująca
getResult
nie dostaje śmieci/undefined
plecy. Zamiast wyrzucać go ponownie, po prostu dodałemfinally
blok, który zawsze zamyka połączenie, niezależnie od tego, czy się udało, czy nie. - Ponieważ używasz async/await, twój silnik javascript powinien obsługiwać
let
iconst
. To lepsze niżvar
=) - Nic nie zwracałeś.