带有回调的欧芹验证器不起作用
Parsley Validator with call back not wroking
我是 javascript 世界的新手,正在尝试添加新的欧芹验证器,在我的验证方法中,我调用了另一个带有回调结果的函数,我在其中放置了我的逻辑来检查 URL是不是图像..但是验证器函数在回调结果之前返回..我从过去两天就一直坚持这个..任何帮助将不胜感激..下面是我的代码片段..
var invalid = false;
window.Parsley
.addValidator('validUrl', {
validateString : function(url) {
checkURLForImage(url , function(result){
if(result == "error" || result == "timeout" ){
console.log('this should print first');
invalid = true;
}
else{
invalid = false;
}
});
console.log('this should print in last');
return !invalid;
},
messages: {
en: 'Please upload only valid image url and correct any broken preview images',
}
});
您似乎没有从 validateString
中 return 获取任何内容,因此显然这行不通。
如果 checkURLForImage
仅适用于回调,您应该 return 来自 validateString
的承诺,您在回调中解决或拒绝。
祝你好运。
感谢@Mark 的提示。我可以使用如下承诺来做到这一点:
window.Parsley.addValidator('validImgUrl', {
validateString : function(url) {
return new Promise(
function (resolve, reject) {
checkURLForImage(url)
.then(function (fulfilled) {
console.log('fulfilled -- > ' +fulfilled);
resolve(true);
}).catch(function (error) {
console.log('error -- > ' +error);
reject(false);
});
}
);
},
messages: {
en: 'Please upload only valid image url and correct any broken preview images',
}
});
我是 javascript 世界的新手,正在尝试添加新的欧芹验证器,在我的验证方法中,我调用了另一个带有回调结果的函数,我在其中放置了我的逻辑来检查 URL是不是图像..但是验证器函数在回调结果之前返回..我从过去两天就一直坚持这个..任何帮助将不胜感激..下面是我的代码片段..
var invalid = false;
window.Parsley
.addValidator('validUrl', {
validateString : function(url) {
checkURLForImage(url , function(result){
if(result == "error" || result == "timeout" ){
console.log('this should print first');
invalid = true;
}
else{
invalid = false;
}
});
console.log('this should print in last');
return !invalid;
},
messages: {
en: 'Please upload only valid image url and correct any broken preview images',
}
});
您似乎没有从 validateString
中 return 获取任何内容,因此显然这行不通。
如果 checkURLForImage
仅适用于回调,您应该 return 来自 validateString
的承诺,您在回调中解决或拒绝。
祝你好运。
感谢@Mark 的提示。我可以使用如下承诺来做到这一点:
window.Parsley.addValidator('validImgUrl', {
validateString : function(url) {
return new Promise(
function (resolve, reject) {
checkURLForImage(url)
.then(function (fulfilled) {
console.log('fulfilled -- > ' +fulfilled);
resolve(true);
}).catch(function (error) {
console.log('error -- > ' +error);
reject(false);
});
}
);
},
messages: {
en: 'Please upload only valid image url and correct any broken preview images',
}
});