Задать this для promise
Здравствуйте.
Использую 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 был правильный контекст?
Источник: Stack Overflow на русском