написано, что fs callback api наиболее предпочтительный вариант по производительности по сравнению с fs promises api. Почему так? Если fs/promises работает с несколькими потоками, то, вроде бы, именно этот вариант должен быть "более предпочтительным по производительности". Нашёл ишью, но причину так и не понял до конца.
Промисы не добавляют потоки. Технически разница между промисами и коллбеками только в том, что в случае fa.promises результат возвращается в виде промиса, при этом это просто обёртка над callback api
То есть, описание fs/promises (The promise APIs use the underlying Node.js threadpool to perform file system operations off the event loop thread), в принципе, касается и callback api? И ещё момент, если я сам сделаю обёртку над callback api в виде new Promise((resolve, reject) =>..., то разницы по сравнению с fs/promises не будет в плане оптимизаций?
https://docs.libuv.org/en/v1.x/design.html#file-i-o
1 - да 2 - смотря как напишешь. Скорее всего будет, но незначительная. Можешь даже использовать promisify, а не самостоятельно промисы делать. Если интересно как реализована обёртка в ноде, посмотри исходники
Обсуждают сегодня