Глядя на ваш код, я ожидал бы, что второй-последний оператор (console.log (result);) будет выполняться раньше всего - и это означает, что консольный результат будет пустым.
Если остальныекод верен (что я не могу точно сказать), вы должны иметь возможность console.log результат (последняя строка кода показано) в месте, где возвращается возвращается.
псевдокод:
containing function(){
console.log(yourCodeInFunction());
}
Эта консоль должна дать результат, потому что она не будет работать, пока ваши сообщения не будут получены.