条件运算符如何处理否定?

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')
}