У меня есть функция, которая возвращает promise
следующим образом:
let aFunction= function(){
return new Promise((resolve, reject){
someNodeApi(params, function(err, data)) {
if(err) {
return reject(err);
}
if(data meets certain criteria) {
someOtherNodeApi(params, function(err, data)) {
// handle conditions.
}
}
resolve(data);
}
})
}
Я хочу иметь эквивалент функции async
для такого рода функции.Короче говоря, мне нужно что-то вроде этого:
let aFunction = async function(){
someNodeApi(params, function(err, data){
if(err) {
// reject condition
}
// resolve condition.
})
}
Так что должно быть в условиях reject
и resolve
выше, чтобы все места, где я вызываю функцию, были такими:
aFunction()
.then(data=>{})
.catch(err=>{})
Это должно быть без изменений.
РЕДАКТИРОВАТЬ
Я должен уточнить, что мой вопрос не о , как вызвать асинхронную функцию ,Но речь идет о том, как преобразовать функцию, которая возвращает Promise, чтобы иметь возможность использовать все преимущества шаблона async-await без необходимости изменять способ его вызова.(Очень распространенный сценарий, когда вы имеете дело с кодом js узла pre async-await эры).