如何打破 Sequelize promise .then({})。我想打破对 then promise 的退出并打破循环。当条件触发时。代码与以下相同。不是我的确切代码。

int i = 0;
   while(i<result.length){

      db.Model.findAll({
      where:{
         x : X,
         w : W,
         z : z
      }).then(result => {
        if(result[i].x == null || result[i].x == undefined){
             // update and break here!
             update(): // something like that
             // how i break the outer loop.
        }
        if(result[i].w > 0){
             // how i break the outer loop.
        }
        if(result[i].z < 100){
             // how i break the outer loop.
        }
   })
 i++;
}

最佳答案

您只需要 async / await 并像这样实现它:

async function your_function(){
    // init your result varibale
    for(let i=0 ; i < result.length ; i++) {
        let mresult = await db.Model.findAll({
                                            where:{
                                                x : X,
                                                w : W,
                                                z : z
                                            })
        if(mresult[i].x == null || mresult[i].x == undefined){
             update(): // something like that
             break; // <------------- Break it like this
        }
        if(mresult[i].w > 0){
             break; // <------------- Break it like this
        }
        if(mresult[i].z < 100){
             break; // <------------- Break it like this
        }
    }
}

关于javascript - 如何打破从内部 promise 函数触发的循环?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49915734/

10-11 10:24