ethernet-ip
Version:
A simple node interface for Ethernet/IP.
26 lines (23 loc) • 701 B
JavaScript
/**
* Wraps a Promise with a Timeout
*
* @param {Promise} - promise to complete before the timeout
* @param {number} - Timeout Length (ms)
* @param {Error|string} - Error to Emit if Timeout Occurs
* @returns {Promise}
* @memberof Controller
*/
const promiseTimeout = (promise, ms, error = new Error("ASYNC Function Call Timed Out!!!")) => {
return new Promise((resolve, reject) => {
setTimeout(() => reject(error), ms);
promise.then(resolve).catch(reject);
});
};
/**
* Delays X ms
*
* @param {number} ms - Delay Length (ms)
* @returns {Promise}
*/
const delay = ms => new Promise(resolve => setTimeout(resolve, ms));
module.exports = { promiseTimeout, delay };