У меня есть следующий код, который в основном пропускает этап ввода документа mongodb, если входящие документы уже находятся в базе данных. Однако эта функция вызывает UnhandledPromiseRejectionWarning
при попытке закрыть db connection
сразу после завершения asyn c.
async dbInsertMany(asset, timeframe, stream){
try{
const [currentAssetModel, multiStream] = this._getMultiModel(asset, timeframe, stream);
// Don't run the db stage if zero length stream received.
if(!multiStream.length==0){
// Refactor this into a try..catch..finally block.
try{
await currentAssetModel.insertMany(multiStream);
console.log('<SUCCESS>');
}catch(err){
console.log('<ERROR>', err);
}finally{
console.log('__DBINSERTMANY:FINALLY__');
};
}else{
// await sleep(1000);
console.log('[WARNNING] No unique documents to add.');
}
}catch(err){
throw new Error('Application failure has occurred!');
}
}
Я не уверен, что мне не хватает.
Следующие ниже функции:
async function dbCycle(){
try{
let asset = new AssetDatabaseHandler();
try{
await asset.dbInsertMany('BTC/EUR', '5m', demoMultiExchangeStream)
console.log('DB_INSERT_MANY: Finished.');
}catch(error){
console.log('DB_INSERT_MANY: [ERROR]', error);
}
}catch(failure){
console.log('[SEVERE_FAILURE]', failure)
}
};
и
(async () => {
try{
await dbConnection.dbConnect();
console.log('Connected.');
const result = await dbCycle();
console.log('> Finished.');
}catch(err){
console.log('> Failed.', err);
}finally{
// dbConnection.dbDisconnect();
console.log('Disconnected.');
}
})();