Функция print-array не является асинхронной, поэтому, если у вас нет одного адского большого количества памяти, захват ее содержимого и запись в нее не приведет к заметному блокированию потока в ожидании запуска remove-from-array
Если у вас есть функция, которую нужно завершить до того, как что-то закончится, то пообещайте ее
const IMightTakeSomeTime = new Promise ((resolve, fail) => {
setTimeout(() => {
resolve(console.log('i am finished'))
}, 3000);
})
IMightTakeSomeTime.then(() =>
console.log('Now its my time to shine')
)
или вы можете использовать async / await, если хотите получить фантазию
const IMightTakeSomeTime = new Promise ((resolve, fail) => {
setTimeout(() => {
resolve(console.log('i am finished'))
}, 3000);
})
const run = async () => {
await IMightTakeSomeTime
console.log('Now its my time to shine')
}
run()
Если вы хотите увидеть хорошо известные не асинхронные функции блокировки потоков в действии, ознакомьтесь с синхронной версией библиотеки Node.js fs, где есть «синхронизирующие» версии некоторых функций, которые не нужно ожидать
https://nodejs.org/api/fs.html#fs_fs_readfilesync_path_options