UNPKG

artillery

Version:

Cloud-scale load testing. https://www.artillery.io

23 lines (22 loc) 696 B
import sleep from "./sleep.js"; // Waits for an event, polling. Returns the event arguments, or null // when maxWaitMs elapses first. NOTE: the timeout leaves the listener // attached and does not reject - see modernization plan F17. async function awaitOnEE(ee, message, pollMs = 1000, maxWaitMs = Infinity) { let messageFired = false; let args = null; let waitedMs = 0; ee.once(message, (...eventArgs) => { messageFired = true; args = eventArgs; }); while (true && waitedMs < maxWaitMs) { if (messageFired) { break; } await sleep(pollMs); waitedMs += pollMs; } return args; } export default awaitOnEE;