В течение нескольких дней я пытаюсь заставить функцию Azure в Node.js работать с внешним API. Я пробовал разные комбинации и библиотеки, такие как Axios или https, используя .then, а также шаблоны Async Await, и каждый раз во время выполнения я получал только обещания взамен. Я полагаю, что функция выполняется, но я теряю ее контекст в основной функции. Даже при выполнении этого простого примера:
module.exports = async function (context, req) {
context.log('Before the call');
let request_options = {
method: 'GET',
host: 'https://jsonplaceholder.typicode.com',
path: '/todos/1',
headers: {
'Content-Type': 'application/json'
}
};
require('http')
.request(
request_options,
function (res,context) {
context.log(res);
context.log('I am within response');
});
context.log('After the call');
};
Результаты с:
2019-11-07T13:19:16.169 [Information] Executing 'Functions.Asyncawaittest' (Reason='This function was programmatically called via the host APIs.', Id=769ceae0-257f-432c-af8f-e35504ebc79a)
2019-11-07T13:19:20.880 [Information] Before the call
2019-11-07T13:19:20.881 [Information] After the call
Что указывает на то, что ответ не обрабатывается контекстом context.log. Чего мне не хватает, чтобы иметь возможность отладить код в ответе? Это вообще выполнено? У меня будет несколько вложенных вызовов API, чтобы их было сложнее отлаживать.