NodeJS Délai d'attente d'une Promesse si n'a pas pu terminer dans le temps

Comment puis-je le délai d'attente d'une promesse après un certain laps de temps?
Je sais Q a une promesse de délai d'attente, mais je suis en utilisant le natif de NodeJS promesses, et ils n'ont pas .fonction de délai.

Ai-je raté une ou emballés différemment?

Sinon, Est au-dessous de la mise en œuvre de bonnes dans les moyens de ne pas sucer de la mémoire, qui travaille en fait comme prévu?

Aussi je peux faire c'est en quelque sorte enveloppé à l'échelle mondiale afin que je puisse l'utiliser pour toutes les promesses que j'ai créer, sans avoir à répéter le setTimeout et clearTimeout code?

function run() {
    logger.info('DoNothingController working on process id {0}...'.format(process.pid));

    myPromise(4000)
        .then(function() {
            logger.info('Successful!');
        })
        .catch(function(error) {
            logger.error('Failed! ' + error);
        });
}

function myPromise(ms) {
    return new Promise(function(resolve, reject) {
        var hasValueReturned;
        var promiseTimeout = setTimeout(function() {
            if (!hasValueReturned) {
                reject('Promise timed out after ' + ms + ' ms');
            }
        }, ms);

        //Do something, for example for testing purposes
        setTimeout(function() {
            resolve();
            clearTimeout(promiseTimeout);
        }, ms - 2000);
    });
}

Merci!

InformationsquelleAutor AlexD | 2015-09-08