gpt4 book ai didi

javascript - javascript 回调中错误参数的更正确位置是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 04:34:08 26 4
gpt4 key购买 nike

我正在编写一个接受回调的 javascript 函数。如果出现问题,回调将传递一个错误参数。

什么是最好/最标准的调用约定?

  • 回调的错误参数应该是第一个还是最后一个?
  • 我应该传递一个 'errorMsg' 字符串,还是一个 new Error('errorMsg') 对象?

即,更正确的是 - 这段代码:

foo = function(bar, callback) {
...
if (error) {
callback('troz not found');
} else {
callback(null, result);
}
}

或此代码:

foo = function(bar, callback) {
...
if (error) {
callback(null, 'troz not found');
} else {
callback(result);
}
}

或者这个:

foo = function(bar, callback) {
...
if (error) {
callback(null, new Error('troz not found'));
} else {
callback(result);
}
}

如果相关,我的代码将用作 NodeJS 模块和基于浏览器的 javascript 库。

最佳答案

您可以指定两个回调,一个用于成功,一个用于错误,并且都封装在一个“回调”参数中。这是处理您的需求的 Javascript 库数量。

var fooFn = function(bar, callbacks) {
callbacks = callbacks || {}; //make callbacks argument optional
...
if (error) {
if (callbacks.error) {
callbacks.error('troz not found'); //pass the error message as a string
}
} else if (callbacks.success) {
callbacks.success(result);
}
}

成功和错误函数是可选的。要指定两者,请这样调用它:

fooFn("some bar", {
success: function(result) {
//success :-)
},
error: function(errorMsg) {
//error :-(
}
});

你也可以这样做:

fooFn("some other bar");

如果愿意,您可以扩展回调对象以支持其他场景,例如“完成”。

关于javascript - javascript 回调中错误参数的更正确位置是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6026052/

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