javascript 中的纯同步函数 returns 出错

a pure synchronous function in javascript that returns an error

我有一个纯函数,如下所示:

function foobar(str) {
   let newStr;
   // code that depends on str and forge a new string
   ...

   return newStr;
}

现在,如果 str 与预期不符,我想提出一个错误。
我的错误将是一个简单的对象,例如 { code: 'foo', msg: 'bar' } 我正在寻找从我的函数中 return 这个错误的正确方法。

我想避免异常和承诺(因为它们是异步的),理想情况下,我希望此函数采用函数式编程风格。
有什么线索吗?

如果您需要避免异步和典型的错误处理,您的函数需要 return 一个对象而不仅仅是一个字符串。对象可以有属性

var returnObject = {
    error: false,
    value: "the string",
    errorValue: "OK"
};

然后每次调用该函数时都需要先检查returnObject.error的条件:

var getStringObj = foobar("string input");
if ( getStringObj.error ) {
   // probably display getStringObj.errorValue
} else {
  //normal handling
}