Рад помочь. Да, потоки друг с другом общаются. В данном варианте мы никак не блокировали выполнение фонового и главного потоков, поэтому как только фоновый получит результат, он отправит данные родительскому, таким образом главный тред не блокируется и позволяет дальше взаимодействовать пользователю с UI. Здесь также важно понимать, что задействована архитектура event-driven, присущая Node.js и паттерн Наблюдатель.