Я только что начал использовать Bluebird's Promise.coroutine, который является версией обещания Generator functions от ES6.Функция генератора с именем
Все работает нормально, когда я создаю функцию и помещаю ее в переменную. Например:
let success = Promise.coroutine(function* (_context) {
...
});
exports.success = Promise.coroutine(function* (_context) {
...
});
Но когда я пытаюсь создать автономную функцию. Как:
Promise.coroutine(function *success() {
...
});
Он никогда не определяет функцию, и я получаю ошибку:
success is not defined
Как получить доступ к автономной функции генератора? или более прямолинейно, как его создать?
Edit:
Я использую validatejs, он требует успеха и функции ошибок для асинхронных валидаций:
exports.create = function (req, res) {
var constraints = {
...
}
validate.async(req, constraints).then(Promise.coroutine(success), Promise.coroutine(error));
function success() { //generator
}
function error(e) { //generator
}
}
Не могли бы вы показать, где брошено ошибка? Где вы пытаетесь получить доступ к «успеху»? –
Это была ошибка, фактически «успех» никогда не определялся. Таким образом, это ошибка для вызова неопределенного объекта в JS. Теперь он решил, как предложил «Агало». – Shaharyar
Но тогда вы все еще пропустите часть, где вы пытаетесь использовать «успех». Отображаемая ошибка приводит к части вашего кода, который вы не показывали в своем вопросе. –