带有回调的欧芹验证不起作用
Posted
技术标签:
【中文标题】带有回调的欧芹验证不起作用【英文标题】:Parsley Validator with call back not wroking 【发布时间】:2017-08-12 03:34:56 【问题描述】:我是 javascript 世界的新手,正在尝试添加新的 parsley 验证器,在我的验证方法中,我正在调用另一个带有回调结果的函数,我在其中放置了我的逻辑来检查 URL 是否为图像。但是验证器函数是在回调结果之前返回..我从过去 2 天开始就一直坚持这个..任何帮助都将不胜感激..下面是我的代码 sn-p ..
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',
);
【问题讨论】:
【参考方案1】:你似乎没有从 validateString
返回任何东西,所以显然这行不通。
如果checkURLForImage
仅适用于回调,您应该从validateString
返回一个您在回调中解决或拒绝的承诺。
祝你好运。
【讨论】:
我也尝试过返回但它不起作用。请参阅编辑后的代码 sn-p 。我不确定如何在这个函数中使用 promise。我是 Java 脚本的新手。【参考方案2】:感谢@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',
);
【讨论】:
以上是关于带有回调的欧芹验证不起作用的主要内容,如果未能解决你的问题,请参考以下文章