我有以下这段代码

new Promise((resolve, reject) => {
    resolve(apiRequest(data))
    reject(console.log('Error'))
}).then(response)


两种方法(解析和拒绝)都被触发,但是我只想在出现问题时才调用拒绝。
如果在这种情况下出现问题,如何抛出错误?

我检查了一下,但似乎无法使用If语句进行检查。

new Promise((resolve, reject) => {
    const printResult = apiRequest(data)
    console.log(printResult) //Outputs Promise {<pending>}
    resolve(printResult) //Then it works
    reject(console.log('Error'))
}).then(response)


拒绝诺言的正确方法是什么?

最佳答案

最简单的方法是使用if条件。即

new Promise((resolve, reject) => {
   // do something...
   if(somethingGoodHappened) {
      resolve(data)
   } else {
      reject(error)
   }
})


但是通常在处理异步请求时,您正在调用的东西通常会返回一个Promise,因此您可以在其中附加thencatch回调。

apiRequest(data)
.then((result) => {
   // all good
})
.catch((err) => {
   console.log(err)
})

关于javascript - 在JavaScript中使用Promise.reject的正确方法是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56216849/

10-11 11:59