Я попытался использовать функцию co
и проверку на javascript, fulfill
будет успешным возвратом, но reject
нет, и ошибка catch не определена. и поток не может продолжаться. Зачем?Отклонить в обещании undefined
Ошибка:
> at GeneratorFunctionPrototype.next (native)
at onFulfilled (/Users/../project/app/node_modules/co/index.js:65:19)
at runMicrotasksCallback (node.js:337:7)
at process._tickDomainCallback (node.js:381:11)
Код:
domain.run(function() {
var testPromise = function() {
return new Promise(function (fulfill, reject){
//reject('error');
reject(new Error('message'));
});
};
co(function *() {
var d = yield testPromise();
console.log(d);
res.send('fin');
}).catch(onerror);
function onerror(error) { console.error(error.stack); }
});
domain.on('error', function(error) { console.error(error); });
Является ли сам аргумент 'reject' неопределенным? Или, может быть, потому, что вы передали строку 'reject()', которая не имеет свойства '.stack' (как указано ниже в вашем коде)? – greim
Вы всегда должны передавать объект Error обработчику отклонения. Либо существующий объект ошибки, либо 'new Error ('blah blah')' – greim
, если я удаляю 'catch', функция обещает по-прежнему то же самое, не может перейти к следующей функции – user1775888