0

我开始学习异步 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()?

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

4

1 回答 1

0

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

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

const error = false
if (!error) {
    resolve()
} else {
    reject('Error')
}
于 2020-06-07T18:42:03.070 回答