【问题标题】:promise-based version of net.createServer基于 promise 的 net.createServer 版本
【发布时间】:2018-02-11 01:38:26
【问题描述】:

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

【问题讨论】:

标签: javascript node.js ecmascript-6


【解决方案1】:

conn.on('data' ...)不能用promise代替,因为它是一个事件监听器,也就是说回调函数可以被多次调用。一个 Promise 不能被多次解析。

如果你确定data 事件只会被触发一次,你可以编写一个包装器来返回一个promise:

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

【讨论】:

    猜你喜欢
    • 2014-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-18
    • 2023-03-26
    • 2011-08-22
    • 1970-01-01
    相关资源
    最近更新 更多