嘿,我在管理 Meteor 应用程序上的错误时遇到了问题,我搜索了此类内容,发现了一些有关同步函数的主题,但我可以管理我的问题。在我的客户端,我调用一个方法,并且我需要在执行之前获得结果。 我的客户端:
onSubmit: function(doc){ // Gestion du formulaire d'inscription
var error = null;
var title = doc.title;
var content = doc.content;
var formData = {
title: title,
content: content
};
//get the captcha data
var captchaData = grecaptcha.getResponse();
Meteor.call('createCPDM', formData, captchaData, function(err){
if(err){
error = new Error("Une erreur s'est produite");
}
});
if(error === null){
this.done(); // Appelle onSuccess
}
else{
this.done(error); // Appelle onError
}
// reset the captcha
grecaptcha.reset();
return false;
},
我的服务器端:
createCPDM: function(formData, captchaData) {
var ip = "0.0.0.0";
var verifyCaptchaResponse;
if (!this.connection.clientAddress) {
verifyCaptchaResponse = reCAPTCHA.verifyCaptcha(ip, captchaData);
}
else {
verifyCaptchaResponse = reCAPTCHA.verifyCaptcha(this.connection.clientAddress, captchaData);
}
if (!verifyCaptchaResponse.success) {
throw new Meteor.Error('422', 'reCAPTCHA Failed: ' + verifyCaptchaResponse.error);
}
else {
var CPDMID = CPDM.insert(formData);
}
return true;
}
所以我需要知道在继续之前是否有错误...
感谢您的帮助!!!
最佳答案
ES6
onSubmit: function(doc){ // Gestion du formulaire d'inscription
// preventDefault() ????
var formData = {
title: doc.title,
content: doc.content
};
//get the captcha data
var captchaData = grecaptcha.getResponse();
Meteor.call('createCPDM', formData, captchaData, err => {
if(err) {
// Appelle onError
return this.done(new Error("Une erreur s'est produite"));
}
this.done(); // Appelle onSuccess
grecaptcha.reset();
});
}
ES5
onSubmit: function(doc){ // Gestion du formulaire d'inscription
// preventDefault() ????
var formData = {
title: doc.title,
content: doc.content
};
//get the captcha data
var captchaData = grecaptcha.getResponse();
var self = this
Meteor.call('createCPDM', formData, captchaData, function(err) {
if(err) {
// Appelle onError
return self.done(new Error("Une erreur s'est produite"));
}
self.done(); // Appelle onSuccess
grecaptcha.reset();
});
}
关于javascript - Meteor 上出现错误的同步问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36584472/