Я пытаюсь реализовать облачную функцию Parse, которая использует метод проверки Mailgun API для адреса электронной почты.Я, очевидно, делаю что-то не так, поскольку, когда я вызываю этот метод из target-c, я получаю ноль обратно, но облачный журнал (console.log) показывает, что метод выполняется правильно - просто не возвращает никакого значения.Я довольно плохо знаком с асинхронным / обещающим мышлением в Javascript, поэтому мне интересно, если кто-нибудь может увидеть, где я ошибаюсь здесь.
Моя облачная функция, реализованная в моем сервере node.js Parse:
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);
}];