首页 > 解决方案 > 条件运算符如何与否定一起使用?

问题描述

我开始学习异步 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)然后解决它,否则 (error === false),reject()?

还是简单地说“如果没有错误,那就解决”?

标签: javascriptconditional-operatornot-operator

解决方案


在您提供的示例代码中,该行将!error ? resolve() : reject('Error')显示“如果没有错误,请解决,否则拒绝并显示消息'错误'”。

重要的是要注意行首的非运算符(!)。这将等同于以下内容:

const error = false
if (!error) {
    resolve()
} else {
    reject('Error')
}

推荐阅读