Было несколько проблем с вашим кодом:
Функция callback
, переданная в обработчик, запускает конец выполнения или вызывается для вас при выходе из кода, если вы сами его не вызываете. Я не совсем уверен, как это взаимодействует с асинхронным кодом JavaScript, но это могло привести к преждевременному завершению работы вашего кода, если бы вы нигде его не вызывали.
Вы используете метод async
, что является хорошей практикой, но ваш вызов покоя не использует его, а использует метод обратного вызова. Это можно преобразовать в асинхронный вызов, как я покажу ниже, что немного облегчает понимание кода.
Я думаю, что самая большая проблема в том, что ваши options
не правы. Вам не нужно https
в начале хоста (потому что он уже знает схему), и путь не может быть в хосте. Сначала я этого не заметил.
Это работает для меня, хотя вы не можете вызвать JSON.stringify
для всего ответа, потому что это сложный объект, а не просто модель.
const https = require('https');
exports.handler = async (event, context, callback) => {
var options = {
method: 'GET',
host: 'swapi.co',
path: '/api/people/1/',
};
await new Promise((resolve, reject) => {
let request = https.request(options, response => {
try {
// do whatever
} finally {
resolve();
}
});
request.on('error', (e) => reject(e));
request.end();
});
callback();
};