条件运算符如何处理否定?
How does the conditional operator work with a negation?
我开始学习异步 javascript,虽然我确实了解回调和承诺,但我正在学习的代码中的某些内容引起了我的注意。例如:
function funcA(){
console.log('World')
}
function funcB() {
return new Promise((resolve, reject) => {
console.log('Hello')
const error = false
!error ? resolve() : reject('Error')
})
}
funcB()
.then(funcA)
.catch(err => console.log(err))
在这种情况下,!error 不是说 if(error === true) 然后解决它,并且 else (error === false), reject()?
还是简单的说"if there is no error, than resolve"?
在您提供的示例代码中,行 !error ? resolve() : reject('Error')
将显示为 "if not error, resolve, else reject with message 'Error'"。
注意行首的非运算符 (!) 很重要。这相当于以下内容:
const error = false
if (!error) {
resolve()
} else {
reject('Error')
}
我开始学习异步 javascript,虽然我确实了解回调和承诺,但我正在学习的代码中的某些内容引起了我的注意。例如:
function funcA(){
console.log('World')
}
function funcB() {
return new Promise((resolve, reject) => {
console.log('Hello')
const error = false
!error ? resolve() : reject('Error')
})
}
funcB()
.then(funcA)
.catch(err => console.log(err))
在这种情况下,!error 不是说 if(error === true) 然后解决它,并且 else (error === false), reject()?
还是简单的说"if there is no error, than resolve"?
在您提供的示例代码中,行 !error ? resolve() : reject('Error')
将显示为 "if not error, resolve, else reject with message 'Error'"。
注意行首的非运算符 (!) 很重要。这相当于以下内容:
const error = false
if (!error) {
resolve()
} else {
reject('Error')
}