如何在Promise中包装条件语句

时间:2019-01-01 12:21:49

标签: javascript node.js promise

我有一条条件if语句,其逻辑需要包装在一个promise中,因为if之后的逻辑只能在它之后执行。

// WRAP 'if' statement below IN A PROMISE
if (a) { // could be true or false. If false, resolve the promise
    // logic here
}

.then(
    // execute logic after if here
)

我是nodejs的新手,正在努力解决这个问题。我该如何解决?

2 个答案:

答案 0 :(得分:1)

只需将其包装到新的Promise中即可:

new Promise((resolve, reject) => {
   if(a){
      reject("error");
   } else {
     resolve(yourData);
   }       
})
.then(data => {
 // Do stuff
})
.catch(err => {
  // You should catch here an error rejected above
})

答案 1 :(得分:0)

这个问题还不清楚。根据我的理解,这是答案。一旦承诺被解决或被拒绝,您就无法在内部运行代码。

new Promise((res, rej) => {

    if (false) {


    }
    res();
    console.log('More code') // this will not run

}).then(() => {

    console.log('This will run')

})