javascript - 基于 Promise 的 net.createServer 版本

标签 javascript node.js ecmascript-6

如果我使用 net.createServer 创建 TCP 服务器,我可以在连接处理程序中使用回调执行 conn.on('data' ...) 。是否有返回 Promise 的版本,以便可以与 async/await 一起使用?或者我应该为此使用一些第三方库或为 conn.on('data' ...) 推出我自己的包装器?

最佳答案

conn.on('data' ...) 不能用 Promise 替换,因为它是一个事件监听器,这意味着回调函数可以被多次调用。一个 Promise 不能被多次解决。

如果您确定 data 事件只会发出一次,您可以编写一个返回 promise 的包装器:

const onData = conn =>
  new Promise((resolve, reject) => {
    conn.on('data', resolve);
    conn.on('error', reject);
  });

关于javascript - 基于 Promise 的 net.createServer 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48723532/

相关文章:

javascript - 有没有办法将 json 对象转换为 json l 文件

node.js - NodeJS UNABLE_TO_VERIFY_LEAF_SIGNATURE

javascript - Node : TypeError: Buffer is not a function (but it's a function! )

javascript - 为什么在原型(prototype)中定义实例方法,而在构造函数中定义实例字段?

javascript - Firefox 中左侧的 tab 相当于什么

node.js - 如何在 Dialogflow NodeJS 客户端中设置自定义平台

javascript - 为什么拖放 Js 会破坏 php 文件的上传过程?

javascript - ES6 模块导入和依赖管理

javascript - 如何在JS中动态获取const值

javascript - 仅替换特定单词后的部分文本