javascript - 如何重复执行一个命令并在抛出错误时执行另一个命令而不总是检查 if 条件?
问题描述
我有一个代码,只有两种情况 - 数据是字节格式/文本格式。只有在启动时或很少我可能会收到文本数据。因此,我编写了如下代码:-
if (message.type === 'utf8') {
console.log(message.utf8Data);
}
if (message.type === 'binary') {
dataStream.write(message.binaryData);
}
现在我希望重构代码,默认情况下它采用二进制类型并继续
dataStream.write(message.binaryData);
如果类型不匹配或错误,它应该执行
console.log(message.utf8Data);
请不要建议任何 if else 条件,因为它很昂贵,因为 dataStream 会执行几百次,而 text 在会话期间只执行一次或两次。对每种数据格式进行 if 检查很麻烦,因为每次我们浪费计算来了解数据格式。
我检查了执行 try...catch 。但我无法得到正确的结果。请有人建议如何重构此代码以提高性能。谢谢!
解决方案
try {
dataStream.write (message.binaryData);
} catch (err) {
// if an exception occurres print the data instead
console.log (message.utf8Data);
}
推荐阅读
- javascript - javascript - 如何根据键对对象列表进行分组并合并结果
- javascript - Puppeteer:使用 cookie 横幅接受多个网站中的所有 cookie
- javascript - TypeError:无法读取 null 的属性“x”
- java - 如何按 dynamodb 上的多个字段排序(任何解决方法)?
- java - 杰克逊(反)序列化在 HTTP 响应和测试用例之间不准确
- gatling - Blazemeter 中的 Gatling 测试创建 ClassNotFoundException
- javascript - 使用 IMG 加载 SVG 并使用 XHR 调用它以内联使用它
- javascript - 从 getChannelData() 编码回音频
- c# - 如何在列表视图中显示数据而不在另一个之上添加一组数据
- c# - SoftwareBitmap 16 灰度像素到 ushort[]