Skip to content
This repository was archived by the owner on Jan 31, 2025. It is now read-only.

Commit 488ef47

Browse files
committed
Clean up once promise logic
1 parent 2a70e95 commit 488ef47

File tree

1 file changed

+22
-9
lines changed

1 file changed

+22
-9
lines changed

src/public/server.js

+22-9
Original file line numberDiff line numberDiff line change
@@ -90,20 +90,33 @@ export function once(name : string, options : ServerOptionsType, handler : Handl
9090
}
9191

9292
options = options || {};
93+
handler = handler || options.handler;
94+
let errorHandler = options.errorHandler;
9395

94-
options.name = name;
95-
options.handler = handler || options.handler;
96-
options.once = true;
96+
let promise = new ZalgoPromise((resolve, reject) => {
97+
98+
options.name = name;
99+
options.once = true;
97100

98-
let prom = new ZalgoPromise((resolve, reject) => {
99-
options.handler = options.handler || (event => resolve(event));
100-
options.errorHandler = options.errorHandler || reject;
101+
options.handler = (event) => {
102+
resolve(event);
103+
if (handler) {
104+
return handler(event);
105+
}
106+
};
107+
108+
options.errorHandler = (err) => {
109+
reject(err);
110+
if (errorHandler) {
111+
return errorHandler(err);
112+
}
113+
};
101114
});
102115

103-
let myListener = listen(options);
104-
prom.cancel = myListener.cancel;
116+
let onceListener = listen(options);
117+
promise.cancel = onceListener.cancel;
105118

106-
return prom;
119+
return promise;
107120
}
108121

109122
export function listener(options : ServerOptionsType = {}) : { on : (name : string, handler : HandlerType) => { cancel : () => void } } {

0 commit comments

Comments
 (0)