Socket.io: async/await์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2016๋…„ 08์›” 09์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: socketio/socket.io

socket.io๋ฅผ koa v2์™€ ํ†ตํ•ฉํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
์„œ๋ฒ„ ์ธก์—์„œ ์ด๋ฒคํŠธ๋กœ ๋น„๋™๊ธฐ ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
์ฒ˜๋Ÿผ:

socket.on('message', async () => {
  const some1 = await fun1()
  const some2 = await fun2()
  socket.emit('reply', some1, some2)
  ... 
})

๋‚ด๊ฐ€ ์•Œ๋‹ค์‹œํ”ผ, async ํ•จ์ˆ˜๋Š” ๋‹จ์ง€ ์•ฝ์†์˜ ๋ž˜ํผ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.
๋‚ด์žฌ๋œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

Google์„ ํ†ตํ•ด ์˜ค๋Š” ์‚ฌ๋žŒ์€ await ๋ฐ socket.io๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ์ค‘์š”ํ•œ ๋ฌธ์ œ๋ฅผ ์ธ์ง€ํ•˜์‹ญ์‹œ์˜ค.

https://github.com/socketio/socket.io/issues/3431

๋ชจ๋“  3 ๋Œ“๊ธ€

์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. fun1 ๋˜๋Š” fun2 ๊ฐ€ ๋˜์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ try/catch ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ •๋ง ๊ณ ๋งˆ์›Œ : )

Google์„ ํ†ตํ•ด ์˜ค๋Š” ์‚ฌ๋žŒ์€ await ๋ฐ socket.io๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ์ค‘์š”ํ•œ ๋ฌธ์ œ๋ฅผ ์ธ์ง€ํ•˜์‹ญ์‹œ์˜ค.

https://github.com/socketio/socket.io/issues/3431

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰