مقاله: استفاده از تابع util.promisify(fn) برای تبدیل تابع کالبک به تابع Promise-based مقدمه: در برنامه‌نویسی نرم‌افزار، اغلب برای اجرای عملیات‌هایی که زمان زیادی می‌برند، از تابع کالبک (callback) استفاده می‌شود. این تابع‌ها معمولاً در قالب یک تابع ناهمزمان (asynchronous) اجرا می‌شوند و پس از اتمام عملیات مورد نظر، یک تابع کالبک را صدا می‌زنند. با این حال، استفاده از تابع کالبک ممکن است منجر به پیچیدگی و خوانایی کد شود. به همین دلیل، در این مقاله، راهکاری برای تبدیل تابع کالبک به تابع Promise-based را معرفی خواهیم کرد. تبدیل تابع کالبک به تابع Promise-based با استفاده از util.promisify(fn): تابع util.promisify(fn) یک تابع در ماژول اصلی Node.js است که برای تبدیل تابع کالبک به تابع Promise-based استفاده می‌شود. این تابع به شما امکان می‌دهد تا یک تابع کالبک را به صورت یک تابع Promise-based تبدیل کنید و از قابلیت‌هایی مانند async/await و then/catch برای کنترل جریان اجرای کد استفاده کنید. نحوه استفاده از تابع util.promisify(fn): برای استفاده از تابع util.promisify(fn)، ابتدا باید ماژول util را به کد خود اضافه کنید. سپس، با استفاده از تابعی که می‌خواهید آن را به تابع Promise-based تبدیل کنید، تماس بگیرید و آن را به عنوان آرگومان به تابع util.promisify(fn) بدهید. سپس می‌توانید از تابع تبدیل شده استفاده کنید. مثال: فرض کنید یک تابع کالبک به نام readFile وجود دارد که فایلی را می‌خواند و نتیجه را به عنوان آرگومان به تابع کالبک می‌دهد. برای تبدیل این تابع به یک تابع Promise-based، می‌توانید از تابع util.promisify(fn) استفاده کنید. کد زیر نحوه استفاده از این تابع را نشان می‌دهد: ```javascript const util = require('util'); const fs = require('fs'); const readFilePromise = util.promisify(fs.readFile); readFilePromise('example.txt') .then(data => { console.log(data); }) .catch(error => { console.error(error); }); ``` در این مثال، تابع fs.readFile که یک تابع کالبک است، با استفاده از تابع util.promisify(fn) به تابع Promise-based تبدیل شده است. سپس از تابع تبدیل شده به نام readFilePromise استفاده شده و با است