Как заставить мою функцию возвращать 200 только после завершения асинхронного вызова?

У меня также есть огромная мазохистическая полоса, так как я написал еще один парсер JSON. Этот подход использует процедурный подход. Для хранения анализируемых данных используется таблица списка иерархии SQL-файлов similat. Также в пакете есть:

  • Обратный процесс: от иерархии до JSON
  • Функции запроса: для получения определенных значений из объекта JSON

Пожалуйста, не стесняйтесь использовать и получать удовольствие от него

http://www.codeproject.com/Articles/1000953/JSON-for-Sql-Server-Part

0
задан lisovaccaro 19 March 2019 в 01:16
поделиться

1 ответ

Код для отправки ответа можно запустить только после получения результата от стороннего API. Таким образом, res.send() должно быть внутри обратного вызова request:

exports.payment = functions.https.onRequest((req, res) => {
    var db = admin.firestore();

    if(req.body.action === 'payment.created') {
        const paymentId = req.body.data.id;

        // Get Payment Information from MercadoPago
        request('https://api.mercadopago.com/v1/payments/' + paymentId + '?access_token=' + MP_ACCESS_TOKEN, function (error, response, body) {
            if (!error && response.statusCode === 200) {
                res.status(200).send('ok');
            }
        });
    }
});
0
ответ дан Frank van Puffelen 19 March 2019 в 01:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: