gpt4 book ai didi

javascript - 等待 IIFE 结果与单独的异步函数

转载 作者:行者123 更新时间:2023-12-05 04:39:50 25 4
gpt4 key购买 nike

我一直在重构一些遗留代码并找到了以下示例:

    // 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 关键字。

最佳答案

主要区别在于,在旧版本中,isTriggerValid 是函数结果,而在新版本中,它是一个函数,结果将被称为 trigger。除此之外,两者都在调用相同的功能。

关于您对这个的担忧。在这两种变体中,它都是一个继承父上下文的箭头函数,因此即使使用它,它在两者中也是相同的。

关于javascript - 等待 IIFE 结果与单独的异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70390417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com