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