當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Node.js InterfaceConstructor rl.question(query[, options], callback)用法及代碼示例

rl.question(query[, options], callback)

添加於:v0.3.3

參數
  • query <string> 要寫入 output 的語句或查詢,位於提示符之前。
  • options <Object>
    • signal <AbortSignal> (可選)允許使用 AbortController 取消 question()
  • callback <Function> 使用用戶輸入調用的回調函數,以響應 query

rl.question() 方法通過將 query 寫入 output 來顯示它,等待在 input 上提供用戶輸入,然後調用 callback 函數,將提供的輸入作為第一個參數傳遞。

調用時,rl.question() 將恢複已暫停的 input 流。

如果 InterfaceConstructor 是在將 output 設置為 nullundefined 的情況下創建的,則不會寫入 query

傳遞給rl.question()callback 函數不遵循接受Error 對象或null 作為第一個參數的典型模式。 callback 以提供的答案作為唯一參數調用。

如果在 rl.close() 之後調用 rl.question() 將引發錯誤。

示例用法:

rl.question('What is your favorite food? ', (answer) => {
  console.log(`Oh, so your favorite food is ${answer}`);
});

使用 AbortController 取消問題。

const ac = new AbortController();
const signal = ac.signal;

rl.question('What is your favorite food? ', { signal }, (answer) => {
  console.log(`Oh, so your favorite food is ${answer}`);
});

signal.addEventListener('abort', () => {
  console.log('The food question timed out');
}, { once: true });

setTimeout(() => ac.abort(), 10000);

相關用法


注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 rl.question(query[, options], callback)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。