Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在JS中,是否将函数返回true/false作为成功/失败的指示器视为良好的标准?_Javascript_Node.js_Standards_Web Standards - Fatal编程技术网

Javascript 在JS中,是否将函数返回true/false作为成功/失败的指示器视为良好的标准?

Javascript 在JS中,是否将函数返回true/false作为成功/失败的指示器视为良好的标准?,javascript,node.js,standards,web-standards,Javascript,Node.js,Standards,Web Standards,我想了解一些关于JS标准的东西: 在编写异步函数或任何返回任何类型承诺的函数时,我需要假设此函数的用户希望捕获拒绝,而不是期望解析中出现布尔值: 好: 坏的: 但我的问题是关于非异步函数,返回true/false作为成功/失败的指示器是否被视为坏习惯?有没有其他好的方法来表示成功/失败? 另外,请告诉我,在你看来,我关于承诺的上述良好习惯的假设是否正确 谢谢大家! 异步函数和非异步函数实际上是一样的: 对/错可以是对所提出问题的合理回答 拒绝例外/承诺是严重失败的标志 例如,如果函数的目的是确定

我想了解一些关于JS标准的东西:

在编写异步函数或任何返回任何类型承诺的函数时,我需要假设此函数的用户希望捕获拒绝,而不是期望解析中出现布尔值:

好:

坏的:

但我的问题是关于非异步函数,返回true/false作为成功/失败的指示器是否被视为坏习惯?有没有其他好的方法来表示成功/失败? 另外,请告诉我,在你看来,我关于承诺的上述良好习惯的假设是否正确


谢谢大家!

异步函数和非异步函数实际上是一样的:

对/错可以是对所提出问题的合理回答 拒绝例外/承诺是严重失败的标志
例如,如果函数的目的是确定字符串是否为数字,则返回值true和false具有明显的含义。但是,如果您传入的对象不是一个字符串,那么一个异常是合适的,因为问题的答案是对象的这个字符串数字是关于异步方式的,我在中看到了这一点。我不认为返回布尔值有什么错。你的非异步函数做什么?我认为这不是个好主意。如果调用findLowestNumberarray,您可能希望返回实际数据,因为您期望的是一个数字,而不是布尔值。处理问题的通常方法是处理问题并返回一些归一化值,例如,-Infinity或null可能是findLowestNumber中的适当值。另一种方法是抛出异常。我看不出半途而废有什么价值。
doSomething = async () => {
  ...
  if (failed)
     reject(error)
  
  resolve("yay")
}

try {
  await doSomething()
  console.log("yay worked")
}
catch (error){
}
  doSomething = async () => {
  ...
  if (failed)
     resolve(false)
  
  resolve(true)
}

didWork = await doSomething()
if (didWork){
  console.log("yay")
else { 
}