解析云函数中的 Nil return

Nil return in Parse Cloud function

我正在尝试实现一个 Parse 云函数,该函数对电子邮件地址使用 Mailgun API 验证方法。我显然做错了什么,因为当我从 objective-c 调用此方法时,我得到 nil 返回,但云日志 (console.log) 显示该方法正在正确执行 - 只是没有返回任何值。我对 async/Promise 在 Javascript 中的思考还很陌生,所以我想知道是否有人能看出我哪里出了问题。

我的 node.js Parse Server 中实现的云函数是:

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);
           }];

一旦我弄清楚如何解决,这个问题就很容易解决了。这是我的工作解决方案:

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));
})