Π― ΠΏΡΡΠ°ΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ socket.io Ρ koa v2.
ΠΠΎΠ³Ρ Π»ΠΈ Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠ°ΠΊ ΡΠΎΠ±ΡΡΠΈΠ΅ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°,
ΠΊΠ°ΠΊ:
socket.on('message', async () => {
const some1 = await fun1()
const some2 = await fun2()
socket.emit('reply', some1, some2)
...
})
ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ Π·Π½Π°Ρ, Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ β Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡ.
ΠΡΡΡ Π»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π½Π΅ΡΠ²Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ?
ΠΡΠΎ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. Π ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ fun1
ΠΈΠ»ΠΈ fun2
ΠΌΠΎΠ³ΡΡ Π±ΡΠΎΡΠΈΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ try/catch
Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ : )
ΠΡΠ΅ΠΌ, ΠΊΡΠΎ Π·Π°Ρ
ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΠ΅Π· Google, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ await
ΠΈ socket.io:
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΡΠ΅ΠΌ, ΠΊΡΠΎ Π·Π°Ρ ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΠ΅Π· Google, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
await
ΠΈ socket.io:https://github.com/socketio/socket.io/issues/3431