javascript - 如何在 JavaScript 中从 Instatiated Parent 实例化子类
问题描述
我正在编写一个 node.js 应用程序,我从 net.Server 获得了一个 net.Socket。我正在编写一个名为 RpcSocket 的类:
class RpcSocket {
constructor(socket) {
this.idToAssign = 1;
this.handlers = {};
this.socket = socket;
this.socket.on('error', e => log.error('socket', e));
const incoming = JSONStream.parse();
incoming.on('data', object => {
const parsedObject = jsonrpc.parseObject(object);
switch (parsedObject.type) {
case 'request':
const response = this.handlers[parsedObject.payload.method](parsedObject.payload.id); // TODO check if it exists
socket.write(JSON.stringify(response));
break;
case 'success':
console.log('success', parsedObject.payload.result); // TODO do something useful, use the ID. Probably need to track IDs
}
});
incoming.on('error', e => log.error('incoming', e));
socket.pipe(incoming);
}
setHandler(method, func) {
this.handlers[method] = func;
}
request(method, params) {
this.socket.write(JSON.stringify(jsonrpc.request(this.idToAssign++, method, params)));
}}
目前这个类只接受一个套接字并将其分配为实例属性。我想让 RpcSocket 扩展 Socket。我遇到的问题是我无法弄清楚如何将实例化的 Socket 转换为 RpcSocket。
解决方案
推荐阅读
- pytorch - Pytorch 嵌入层中的 BERT 嵌入
- influxdb - 手动按特定顺序排序
- matlab - 使用 histfit 拟合正态分布时指定 bin 边缘
- python - 空行对训练 FastText 模型的影响
- angular - NgRx 数组状态如何修复类型约定?
- artifactory - JFrog Xray 可以只扫描 Maven 工件吗?
- python - Pygame - 接地时平台跳跃无响应
- google-cloud-platform - GCP HTTP(s) 第 7 层负载平衡器中的动态 SSL 分配
- c++ - 不删除静态指针(谷歌风格)
- python - 使用 GridSearchCV 时出现什么错误?