Здравствуйте.
Использую 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 был правильный контекст?
но зачем? просто любопытно. "Использую node.js 0.12.0. В ней есть встроенные promise" прям нативные прям? :)
– nörbörnën Mar 24 '15 at 00:06Перфекционист во мне требует)) Конечно, не критично, но все же..
Не понял, что вы имеете в виду?
Блин, не тот пример привел. Счас вопрос исправлю))
– alvoro Mar 24 '15 at 00:18Я так понимаю, ты используешь какой-то пакетик, потому что, насколько я знаю, нативных промисов в ноде нет. Если это так, то стоит покопаться в документации пакета. И, для общего развития, просто в документации https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Promise
– nörbörnën Mar 24 '15 at 00:24