Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 解析云函数中的Nil返回_Javascript_Objective C_Parse Platform_Parse Server_Mailgun - Fatal编程技术网

Javascript 解析云函数中的Nil返回

Javascript 解析云函数中的Nil返回,javascript,objective-c,parse-platform,parse-server,mailgun,Javascript,Objective C,Parse Platform,Parse Server,Mailgun,我正在尝试实现一个解析云函数,该函数对电子邮件地址使用MailgunAPI验证方法。我显然做错了什么,因为当我从objective-c调用这个方法时,我得到了nil,但是cloud日志(console.log)显示该方法执行正确——只是没有返回任何值。我对Javascript中的异步/承诺思维非常陌生,所以我想知道是否有人能看出我在这里的错误 My node.js解析服务器中实现的My cloud函数是: Parse.Cloud.define('validateEmail', async(req

我正在尝试实现一个解析云函数,该函数对电子邮件地址使用MailgunAPI验证方法。我显然做错了什么,因为当我从objective-c调用这个方法时,我得到了nil,但是cloud日志(console.log)显示该方法执行正确——只是没有返回任何值。我对Javascript中的异步/承诺思维非常陌生,所以我想知道是否有人能看出我在这里的错误

My node.js解析服务器中实现的My cloud函数是:

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代码调用cloud函数,如下所示:

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

我建议您阅读云代码。