Как отвечать асинхронно в облачной функции Google? - PullRequest
0 голосов
/ 24 февраля 2019

Я написал функцию, целью которой является отправка информации о заказе пользователя обработчику платежей и возвращение ответа от обработчика платежей пользователю.

Однако моя функция всегда возвращает NULL вместо ожидания ответаот обработчика платежей (MercadoPago).Я читал о Prosmises, но я не смог понять, как заставить их работать.

Это мой текущий код:

const functions = require('firebase-functions');
var mercadopago = require('mercadopago');

exports.getPreference = functions.https.onCall((request, response) => {
    mercadopago.configure({
        access_token: 'TEST-1018285142710709-022320-8093c7aa4c51c987e9698e3a6299bd48-185883176'
    });

    var preference = {}

    var item = {
      title: 'Bottle',
      quantity: 7,
      currency_id: 'ARS',
      unit_price: 95.99
    }

    var payer = {
      email: "demo@mail.com"
    }

    preference.items = [item]
    preference.payer = payer

    mercadopago.preferences.create(preference).then(function (data) {
        return data
     }).catch(function (error) {
        return error.message
     });
});

1 Ответ

0 голосов
/ 24 февраля 2019

Вы должны возвращать что-то из функции верхнего уровня, а не из обратного вызова в какой-либо другой метод.

Если вы хотите вернуть объект, полученный в результате вызова «mercadopago», то вернуть его обещание:

return mercadopago.preferences.create(preference)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...