gpt4 book ai didi

javascript - NodeJS 中未提供回调模式

转载 作者:行者123 更新时间:2023-11-28 19:43:18 25 4
gpt4 key购买 nike

我通常会花几个小时编写 NodeJS 代码,并且有一个常见的情况我不知道如何面对。给定以下异步函数调用(我们忘记了所需的回调):

function foo (callback) {
// Perform a task and call callback when finished
callback();
}
foo(); // We forget the callback

哪种方法可以更好地处理这个问题?我发现有两个选择:

  1. 使 foo() 函数更加健壮,将其添加为第一行:callback = callback ||函数 () {}
  2. foo() 尝试调用 callback() 但它不存在时,让它崩溃。

也许第三个选项(我更喜欢)是最好的:如果未提供回调,则抛出自定义错误,如 foo() 的第一行。例如:

function foo (callback) {
if (!callback) {
throw new Error('No callback provided');
}
// More stuff here
callback();
}

我的问题是:有没有什么众所周知的模式可以解决这种情况?您认为哪种方法更好?你会用不同的方式解决这个问题吗?

最佳答案

这完全取决于您的回调是否是强制性的。

  • 如果这是强制性的,那么您应该快速失败并执行抛出新错误('没有提供回调');

    <
  • 如果它是可选的,那么标准做法是只要它存在就调用它。无需创建新函数,只需在要调用它的地方添加一个检查即可:

    if ( callback ) {
    callback();
    }

或单行:

callback && callback();

关于javascript - NodeJS 中未提供回调模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24694185/

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