در این مقاله به بررسی تابع rl.question(prompt, callback) در زبان برنامه نویسی جاوااسکریپت می‌پردازیم. این تابع در برنامه‌های کنسولی استفاده می‌شود تا یک پیام را به کاربر نمایش دهد و ورودی را از او دریافت کند. تابع rl.question(prompt, callback) از ویژگی استاندارد ورودی/خروجی خواندن از کاربر در نود جی‌اس استفاده می‌کند. این تابع دو پارامتر را به عنوان ورودی می‌گیرد: 1. prompt: یک رشته که پیام مورد نظر برای نمایش به کاربر است. 2. callback: یک تابع که به عنوان ورودی گرفتن مقدار ورودی از کاربر استفاده می‌شود. بعد از اجرای تابع rl.question(prompt, callback)، پیام مورد نظر در کنسول نمایش داده می‌شود و کاربر می‌تواند ورودی مورد نظر خود را وارد کند. سپس تابع callback اجرا می‌شود و مقدار ورودی از کاربر به عنوان پارامتر به آن ارسال می‌شود. برای استفاده از تابع rl.question(prompt, callback)، ابتدا باید ماژول readline را در برنامه خود وارد کنید. سپس یک شیء از کلاس Interface ایجاد کنید و آن را به عنوان پارامتر به تابع rl.question(prompt, callback) ارسال کنید. در زیر مثالی از استفاده این تابع را مشاهده می‌کنید: ```javascript const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); rl.question('Please enter your name: ', (name) => { console.log(`Hello ${name}!`); rl.close(); }); ``` در این مثال، پیام "Please enter your name: " به کاربر نمایش داده می‌شود و کاربر می‌تواند نام خود را وارد کند. سپس تابع callback اجرا می‌شود و نام وارد شده توسط کاربر در متغیر name قرار می‌گیرد. در این مثال، پس از دریافت نام کاربر، پیامی با استفاده از تابع console.log نمایش داده می‌شود و رابط خواندن از کاربر با استفاده از تابع rl.close() بسته می‌شود. با استفاده از تابع rl.question(prompt, callback) می‌توانید پیام‌های مختلف را به کاربر نمایش دهید و ورودی‌های متنوعی از وی دریافت کنید. این تابع بسیار مفید است برای برنامه‌های کنسولی که نیاز به تعامل با کاربر دارند.