我正在尝试实现一个解析云函数,它对电子邮件地址使用mailgun api验证方法。显然,我做了一些错误的事情,因为当我从objective-c调用这个方法时,我得到了nil,但是cloud日志(console.log)显示该方法执行正确,只是没有返回任何值。我对javascript中的异步/承诺思想还不太熟悉,所以我想知道是否有人能看出我在这方面做错了什么。
在node.js解析服务器中实现的云函数是:
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);
}];