Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- export async function asyncEmit<T>(
- region: string,
- socket: Server,
- event: string,
- data: {
- id: any;
- [k: string]: any;
- }
- ): Promise<{ result: T; error: boolean }> {
- return new Promise((resolve, reject) => {
- socket.to(region).emit(event, data);
- const cb = (res: { result: T; error: boolean }, ack: any) => {
- if (res.error) {
- reject(res.result);
- ack('Error');
- }
- console.log('success, ', res.result);
- socket.off(`${data.id}-${event}`, cb);
- resolve(res);
- ack('Success');
- };
- socket.on(`${data.id}-${event}`, cb);
- setTimeout(() => {
- socket.off(`${data.id}-${event}`, cb);
- reject('Timed out.');
- }, 5000);
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement