Votre méthode getWord est asynchrone !
Donc la deuxième console.log(wordList);
est imprimé avant que les résultats ne soient renvoyés (avant même que vous n'appeliez wordList.push(result);
pour la première fois)
Aussi depuis que vous interrogez db (qui est asynchrone) dans getParrotMessage fonction, vous devez utiliser le rappel (ou la promesse ou tout ce qui peut être utilisé) au lieu de l'instruction de retour.
function getParrotMessage(callback) {
getWord('result', function (err, result) {
if(err || !result.length) return callback('error or no results');
// since result is array of objects [{word: 'someword'},{word: 'someword2'}] let's remap it
result = result.map(obj => obj.word);
// result should now look like ['someword','someword2']
// return it
callback(null, result);
});
}
function getWord(word, callback) {
con.query('SELECT * FROM word_table', function(err, rows) {
if(err) return callback(err);
callback(null, rows);
});
};
maintenant, utilisez-le comme ça
getParrotMessage(function(err, words){
// words => ['someword','someword2']
});