Javascript 在JS中,是否将函数返回true/false作为成功/失败的指示器视为良好的标准?
我想了解一些关于JS标准的东西: 在编写异步函数或任何返回任何类型承诺的函数时,我需要假设此函数的用户希望捕获拒绝,而不是期望解析中出现布尔值: 好: 坏的: 但我的问题是关于非异步函数,返回true/false作为成功/失败的指示器是否被视为坏习惯?有没有其他好的方法来表示成功/失败? 另外,请告诉我,在你看来,我关于承诺的上述良好习惯的假设是否正确Javascript 在JS中,是否将函数返回true/false作为成功/失败的指示器视为良好的标准?,javascript,node.js,standards,web-standards,Javascript,Node.js,Standards,Web Standards,我想了解一些关于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 {
}