javascript中返回错误的纯同步函数

javascript中返回错误的纯同步函数,javascript,error-handling,synchronous,Javascript,Error Handling,Synchronous,我有一个纯函数,看起来像: function foobar(str) { let newStr; // code that depends on str and forge a new string ... return newStr; } 现在,如果str不符合预期,我想提出一个错误。 我的错误是一个简单的对象,比如{code:'foo',msg:'bar'},我正在寻找从函数返回此错误的正确方法 我希望避免异常和承诺(因为它们是异步的),理想情况下,我希望此函数采

我有一个纯函数,看起来像:

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

   return newStr;
}
现在,如果
str
不符合预期,我想提出一个错误。
我的错误是一个简单的对象,比如{code:'foo',msg:'bar'},我正在寻找从函数返回此错误的正确方法

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

有什么线索吗?

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

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
}

使用异常
抛出{code:'foo',msg:'bar'}那么你只是想返回一个对象,还是真的抛出了一个错误?@jcubic的可能重复我不太喜欢异常,但如果没有其他选择…总有一个选项,如果你不想抛出,只需返回
false
,或者一个对象,或者其他什么,只要在调用函数的任何地方检查返回的结果是否是字符串。