从另一个函数转义/返回一个函数



我有多个调用 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();

最新更新