我一直在重構一些遺留代碼并找到以下示例:
// inside other function
const isTriggerValid = await (async () => {
try {
const triggers = await db.any(getTriggerBeforeBook, { paramId });
if (!triggers || triggers.length === 0) {
return false;
}
return true;
} catch (e) {
logger.error(e);
return false;
}
})();
我想問一下,它和下面的代碼之間有什么關系?
const isTriggerValid = async (paramId) => {
try {
const triggers = await db.any(getTriggerBeforeBook, { paramId });
if (!triggers || triggers.length === 0) {
return false;
}
return true;
} catch {
return true;
}
}
然后用const trigger = await isTriggerValid(paramId)?
我絕對確定this沒有在其中使用關鍵字。
uj5u.com熱心網友回復:
主要區別在于,在舊版本isTriggerValid中將是函式結果,而在新版本中它是一個函式,結果將被呼叫trigger。除此之外,兩者都呼叫相同的函式。
關于您的擔憂this。在這兩種變體中,它都是一個繼承父背景關系的箭頭函式,因此即使使用它,它在兩者中也是相同的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/383504.html
標籤:javascript 节点.js 打字稿
