RSS Git Download  Clone
Raw Blame History
const promiseUtils = require('./promise');

const wait = async(timeout) => {
    return await corySetTimeout(timeout);
}

const corySetTimeout = async (cb, timeout) => {
    if (timeout === undefined) {
        timeout = cb;
        cb = () => {};
    }
    const { resolve, reject, promise} = promiseUtils.deferred();

    promise.timer = setTimeout(async () => {
        try {
            await cb();
            resolve();
        } catch (e) {
            reject(e);
        }
    }, timeout)

    return promise;
}

const corySetInterval = async(cb, timeout) => {
    const { resolve, reject, promise} = promiseUtils.deferred();

    promise.timer = setInterval(async() => {
        try {
            await cb();
            resolve();
        } catch (e) {
            reject(e);
        }

    }, timeout)

    return promise;
}

module.exports.wait = wait;
module.exports.setTimeout = corySetTimeout;
module.exports.setInterval = corySetInterval ;