この sqlite3 関数では util.promisify を使用しました。
// Before
db.each("Select * from example;", (error, row) => console.table(row));
db.each = util.promisify(db.each);
// After
async function getRow()
try {
console.table(await db.each("Select * from example;")); // line 7
} catch (e) {
console.error(e.message);
}
}
私の質問は、promisify は 7 行目でどの変数 (「err」または「row」) を返すかをどのようにして知るのでしょうか?
------------------------
util.promisify() は、コールバック関数の最初のパラメータがエラー パラメータである場合にのみ、コールバックを Promise に変換するために使用/変換できます。
したがって、常に「row」が返されます。 7 行目。エラーがある場合は、catch ブロックに進みます。
2
つまり、promisify は常に最初のパラメータをエラー パラメータとして期待します。
– ルプジョティ
2020 年 9 月 3 日 16:53
promisify は常にコールバック関数の最初のパラメータをエラー パラメータとして期待し、「コールバック自体」はエラー パラメータとして期待されます。最後のパラメータとして。たとえば、これは次のように約束できます: form.parse(req, (err,fields,uploads) => { //....
– アダーチョックス
2022 年 10 月 11 日 22:33