Создание ошибки внутри асинхронной функции
parseString(res, async function (err, result)...
отклоняет обещание, возвращаемое асинхронной функцией, для которой нет обработчика перехвата.Если parseString
вызывает его обратный вызов синхронно, вы можете просто удалить объявление async
, оставив вызов как
parseString(res, function (err, result)...
Если parseString асинхронный, его нужно обещать, чтобы ошибки могли быть внесены вокружающая цепочка обещаний.В качестве непроверенного примера:
function doParseString( res) {
return new Promise( function( resolve, reject) {
parseSting( res, function( err, result) {
err ? reject( err) : resolve( result);
});
});
}
, который можно использовать в соответствии с
ssm.decrypt(args.request, password, base_key)
.then( doParseString)
.then( function (result) {
// some code
})
.catch( console.log); // do something with the error