Нулевое возвращение в функции Parse Cloud - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь реализовать облачную функцию Parse, которая использует метод проверки Mailgun API для адреса электронной почты.Я, очевидно, делаю что-то не так, поскольку, когда я вызываю этот метод из target-c, я получаю ноль обратно, но облачный журнал (console.log) показывает, что метод выполняется правильно - просто не возвращает никакого значения.Я довольно плохо знаком с асинхронным / обещающим мышлением в Javascript, поэтому мне интересно, если кто-нибудь может увидеть, где я ошибаюсь здесь.

Моя облачная функция, реализованная в моем сервере node.js Parse:

Parse.Cloud.define('validateEmail', async(request) => {

    var mailgun = require('mailgun.js');

    var mg = mailgun.client({
        username: 'api',
        key: process.env.MAILGUN_API_KEY,
        public_key: process.env.MAILGUN_PUBLIC_KEY
      });

    mg.validate.get(request.params.email, {useMasterKey: true}).then(data => {
        console.log(data);
        return Promise.resolve(JSON.stringify(data));
    })
    .catch(err => {
        console.log(err);
        return Promise.resolve(error);
    });
})

функция облака вызывается из кода Objective-C как:

 [PFCloud callFunctionInBackground:@"validateEmail" withParameters:@{@"email":user.email} block:^(NSString *bodydata, NSError *error) {

                 NSDictionary *body = [NSJSONSerialization JSONObjectWithData:[bodydata dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil];

                NSLog(@"validateEmail : %@", body);
           }];

1 Ответ

0 голосов
/ 22 ноября 2018

Это было легко исправлено, когда я понял, как это сделать.Вот мое рабочее решение:

Parse.Cloud.define('validateEmail',  async (request) => {
    var mailgun = require('mailgun.js');

    var mg = mailgun.client({
        username: 'api',
        key: process.env.MAILGUN_API_KEY,
        public_key: process.env.MAILGUN_PUBLIC_KEY
      });

   return mg.validate.get(request.params.email, true).then(data => {
       return data}) 
        .catch(err => handleParseError(err));
})
...