使用 Promise.reject 和 javascript 的正确方法是什么

EAz*_*edo 0 javascript node.js

我有以下这段代码

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

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

我检查过,但似乎我不能使用 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)
Run Code Online (Sandbox Code Playgroud)

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

and*_*ugh 5

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

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

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

apiRequest(data)
.then((result) => {
   // all good
})
.catch((err) => {
   console.log(err)
})
Run Code Online (Sandbox Code Playgroud)