我正在使用Node.js REPL 模塊來實作 REPL。
這是我啟動 REPL 的方式:
const cli = repl.start({ eval: evals });
我有一個函式,answer它接受一些引數并回傳答案。answer是異步的。evals是一個功能,它將 REPL 對該eval功能的需求與我的answer功能提供的功能聯系起來。evals看如下。
const evals = (command, context, file, callback) => {
(async () =>
callback(null, await answer(command, arg1))
)()
};
現在,好訊息是,它有效。但這看起來比它需要的要復雜得多。我是否缺少某種方法來使維護變得相當簡單?
(這是背景關系中的代碼)
uj5u.com熱心網友回復:
我認為使 evals 函式直接異步應該可以作業:
const evals = async (command, context, file, callback) => {
callback(null, await answer(command, arg1));
};
或者您可以避免 async/await 并Promise.then直接使用;在這種情況下可能更清楚:
const evals = (command, context, file, callback) => {
answer(command, arg1)
.then((result) => callback(null, result));
};
(無論哪種情況,您都可以省略大括號,盡管我不確定我是否更喜歡它。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/412073.html
標籤:
