如果我使用net.createServer
创建TCP服务器,我可以使用回调在连接处理程序中执行conn.on('data' ...)
。是否有返回Promise
的版本,因此可以与async/await
一起使用?或者我应该为此使用某些第三方库,还是为conn.on('data' ...)
滚动我自己的包装?
答案 0 :(得分:2)
conn.on('data' ...)
不能用promise替换,因为它是一个事件监听器,这意味着可以多次调用回调函数。承诺无法多次解决。
如果您确定data
事件只会发出一次,您可以编写一个包装器,它将返回一个承诺:
const onData = conn =>
new Promise((resolve, reject) => {
conn.on('data', resolve);
conn.on('error', reject);
});