Ваш исходный код смешивался then
/ catch
с async
:
async function getJobs(context: Context): Promise<void> {
axios
.get("http://localhost:8111/batches")
.then(function(response: any) {
processBatch(context, response);
})
.catch(function(error: any) {
context.log.error(`Some Error Log: `, error);
});
}
Приведенный выше код (axios.get(..).then(..).catch(..)
) создаст Promise
, но это обещание никогда не возвращается;это просто игнорируется.Между тем, async
создается еще одно обещание, которое завершается после того, как первое обещание создано (не выполнено).
Вам следует использовать async
/ await
по всему:
async function getJobs(context: Context): Promise<void> {
try {
const response = await axios.get("http://localhost:8111/batches");
processBatch(context, response);
} catch (error) {
context.log.error(`Some Error Log: `, error);
}
}
Кроме того, вам не хватает await
здесь:
export async function onTrigger(context: Context, myTimer: any): Promise<void> {
getJobs(context);
}
должно быть:
export async function onTrigger(context: Context, myTimer: any): Promise<void> {
await getJobs(context);
}