Задать this для promise

Рейтинг: 0Ответов: 0Опубликовано: 24.03.2015

Здравствуйте.

Использую node.js 0.12.0. В ней есть встроенные promise. Вопрос - возможно ли задать контекст для cb-функции в then? Пример:

    var fn = function (arg1, arg2, arg3, cb) {
        setTimeout(function () {
            cb.call('context', null, arg1+arg2+arg3);
        });
    };

    // promisify - функция, принимающая асинхронную функцию и возвращающая функцию, которая вернет promise. 
    //Callback, по прежнему, поддерживается.
    promisify(fn) (1,2,3, function (err, result) {
        console.log('via cb', this, err, result);
    })
        .then(function (result) {
            console.log('via promise', this, result);
        })
        .catch(function (err) {
            console.log('error', err);
        });

Пример выше выдает

via cb context null 6
via promise undefined 6

Какие есть варианты, кроме переписывания promise, чтобы и в then был правильный контекст?

Ответы

Ответов пока нет.