如果我使用 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/