【发布时间】:2018-11-21 21:08:21
【问题描述】:
我正在尝试实现一个 Parse 云函数,该函数利用 Mailgun API 验证方法来验证电子邮件地址。我显然做错了什么,因为当我从 Objective-c 调用这个方法时,我得到了 nil,但是云日志(console.log)显示该方法正在正确执行——只是没有返回任何值。我对 Javascript 中的 async/Promise 思维很陌生,所以我想知道是否有人能看到我在这里出错的地方。
我在 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);
}];
【问题讨论】:
-
推荐大家阅读云码documentation。
标签: javascript objective-c parse-platform parse-server mailgun