我有多个调用 validate(( 的任务函数,如果出现验证错误,则需要返回/转义主函数。是否可以用打字稿/javascript做这样的事情?(我在节点环境中工作(
cont validate = () => {
//validation etc...
//if validation error
// return & request mainFunction() to also return
}
const taskOne = () => {
validate() //some validation error happened when this got called..
}
const taskTwo = () => {
validate()
}
const mainFunction = () => {
taskOne();
taskTwo(); //will not run because taskOne requested return
}
mainFunction();
我想避免在每个任务执行后创建 if 检查,以防我想通过调用验证函数的更多任务来扩展我的代码。如何完成此任务?
您可以返回一个布尔值并链接验证。
const validate = (prop) => {
// validation etc...
// if validation error
// return false & request mainFunction() to also return
return true;
}
const taskOne = () => validate(one);
const taskTwo = () => validate(two);
const mainFunction = () => taskOne() && taskTwo() && taskThree() /* && ... */;
mainFunction();
您可以使用简单的 try/catch 块,并让验证函数在验证失败时引发错误。
const validate = () => {
if(validationSucceeds) {
return true;
} else {
throw 'error message';
}
}
const taskOne = () => {
validate() //some validation error happened when this got called..
}
const taskTwo = () => {
validate()
}
const mainFunction = () => {
try {
taskOne();
taskTwo(); //will not run because taskOne requested return
} catch(err) {
console.error(err);
return;
}
}
mainFunction();