javascript - javascript 类,返回可能的错误来处理它的方法
问题描述
我有一个类,我想要一个错误方法来返回一种从对象处理它的方法
class MyClass {
On(value){
try{
throw new Error("Massimo due candidati");
}
catch(e){
console.log(e.name, e.message); //Error, I'm Evil
}
}
}
如果我创建一个类的对象,我该如何以类似的方式处理错误?
var obj = new MyClass();
obj.on(value, err=> {
if (err) {
onError(err.message);
}else{
console.log("Inserimento ok");
}
});
感谢您的关注。
解决方案
调用时.on
,将回调推送到对象存储的回调数组。然后,无论何时触发.on
运行,遍历数组中的所有回调并调用它们(也可能传递一个错误参数):
class MyClass {
onCallbacks = [];
on(someArg, callback) {
this.onCallbacks.push(callback);
}
invokeOK() {
this.onCallbacks.forEach((callback) => {
callback();
});
}
invokeError() {
this.onCallbacks.forEach((callback) => {
callback(new Error('foo'));
});
}
}
const onError = console.error;
const obj = new MyClass();
obj.on('value', err => {
if (err) {
onError(err.message);
} else {
console.log("Inserimento ok");
}
});
obj.invokeError();
obj.invokeOK();
推荐阅读
- python - Python 请求 - 上传文件名中带有 UTF-8 特殊字符(如“ÄÖÜ”)的文件
- reactjs - 未处理的拒绝(TypeError):zone.filter 不是函数
- javascript - React 中兄弟姐妹的访问列表
- python - Python Pandas:在将数据框保存为 csv 之前创建文件名
- azure - 在 KQL 中按属性聚合数据
- javascript - 有没有办法在单页应用程序中为不同的 URL 设置不同的 Google Tag Manager ID?
- shell - xargs 参数未解释
- c++ - 如何在不同设备之间共享 EGLImageKHR 对象
- php - 引导模式没有获取用户 ID
- python-3.x - Chrome 驱动程序错误 selenium 消息:会话未从断开连接创建:无法连接到渲染器