Вы можете использовать async / await внутри async.js
В вашем коде есть большая ошибка:
return async function (callback) {}
Асинхронные функции не требуют или не требуют callback
, они являются сокращением для Promises
Вот простой пример async function
, который будет работать в async.js:
async function forAsync() {
try {
let user = await db.findOne({});
return user // this is equivalent to resolve(user)
} catch (e) {
throw(e) // this is equivalent to reject(err)
}
}
Как Promise
это будет выглядеть следующим образом:
function forAsync() {
return new Promise((resolve,reject) => {
db.findOne({}, (err,res) => {
if (err) reject(err)
let user = res;
resolve(user);
});
}
}
Как callback
это будет выглядеть следующим образом:
function forAsync(callback) {
db.findOne({}, (err,res) => {
if (err) callback(err)
let user = res;
callback(null, user);
});
}