Измените свой код на это (при условии, что ваша функция верхнего уровня может await
):
const msg_bo = new msgBO();
const msg = JSON.parse( req.body.message );
await uploadFile();
function upload(){
return new Promise( ( resolve, reject ) => {
const cnf = msg_bo.uploadMessageAttachments( msg, req.file );
resolve( cnf );
} );
}
async function uploadFile() {
const cnf = await upload();
console.log( 'my response ', cnf );
res.send( {
status: 'success',
message: {
text: msg,
filename: cnf
}
} );
}
Вышесказанное можно упростить до этого:
const msg_bo = new msgBO();
const msg = JSON.parse( req.body.message );
const cnf = await upload();
console.log( 'my response ', cnf );
res.send( {
status: 'success',
message: {
text: msg,
filename: cnf
}
} );
function upload(){
return new Promise( ( resolve, reject ) => {
const cnf = msg_bo.uploadMessageAttachments( msg, req.file );
resolve( cnf );
} );
}
.. Хотя вы фактически не используете какой-либо настоящий async
API, вы можете делать все это синхронно (при условии, что uploadMessageAttachments
не возвращает Promise<T>
):
const msg_bo = new msgBO();
const msg = JSON.parse( req.body.message );
const cnf = msg_bo.uploadMessageAttachments( msg, req.file );
console.log( 'my response ', cnf );
res.send( {
status: 'success',
message: {
text: msg,
filename: cnf
}
} );