Введение
В этом практическом занятии мы узнаем, как превратить асинхронную функцию в функцию, возвращающую промис, с использованием функции promisify. Это позволит нам писать более чистый и читаемый код, избежав коллбэк-функций. Мы также изучим применение каррирования и оператора "остаток" в JavaScript.
Это Guided Lab, который предоставляет пошаговые инструкции, чтобы помочь вам учиться и практиковаться. Внимательно следуйте инструкциям, чтобы выполнить каждый шаг и получить практический опыт. Исторические данные показывают, что это лабораторная работа уровня начальный с процентом завершения 82%. Он получил 100% положительных отзывов от учащихся.
Функция promisify
Для преобразования асинхронной функции в функцию, возвращающую промис, следуйте шагам:
- Откройте Терминал/SSH и введите
node, чтобы начать практиковаться в написании кода. - Используйте каррирование, чтобы вернуть функцию, которая возвращает
Promise, вызывающий исходную функцию. - Используйте оператор "остаток" (
...), чтобы передать все параметры. - Если вы используете Node 8+ вы можете использовать
util.promisify. - Вот пример кода:
const promisify =
(func) =>
(...args) =>
new Promise((resolve, reject) =>
func(...args, (err, result) => (err ? reject(err) : resolve(result)))
);
- Чтобы использовать эту функцию, определите асинхронную функцию и передайте ее в качестве параметра в функцию
promisify. Возвращенная функция теперь будет возвращать промис.
const delay = promisify((d, cb) => setTimeout(cb, d));
delay(2000).then(() => console.log("Hi!")); // Promise разрешается спустя 2с
Функция delay - это пример асинхронной функции, которая теперь возвращает промис с использованием функции promisify.
Резюме
Поздравляем! Вы завершили практическое занятие по функции promisify. Вы можете выполнить больше практических заданий в LabEx, чтобы улучшить свои навыки.