Как использовать Promise в узле v9.11? - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь использовать Promise в node.js, но он не работает должным образом. Может ли кто-нибудь помочь мне понять, что не так с моим кодом? Смотри консоль, они упорядочивают выходы

let Dele = "Delete From VehicleImages WHERE Vehicle='"+VehicleId+"'"
db.query(Dele,function(err,del){
    if(err){
        console.log(err)
    }else{
        for(let i=0; i<keyss.length; i++){
            let DocName = keyss[i];
            let FileData = files[DocName];
            let FileName = FileData.name;
            fs.mkdir('public/Vehicle/Img',{recursive:true},(err)=>{
                if (err){
                    FileData.mv('public/Vehicle/Img/'+FileData.name ,function(err) {
                        if (err){
                            console.log(err)
                        }
                    });
                }else{
                    FileData.mv('public/Vehicle/Img/'+FileData.name ,function(err) {
                    if (err){
                        console.log(err)
                        }
                    });
                } 
                pro = new Promise(function(resolve,reject){
                    let iid = uuid.v4();
                    let q = "INSERT INTO VehicleImages (Id,Vehicle,Document_FileName,Thumbnail_FileName) VALUES ('"+iid+"','"+VehicleId+"','"+FileName+"','"+FileName+"')";
                    console.log(q) third console
                    db.query(q,function(err,data){
                        if(err){
                            reject("error")
                        }else{
                            resolve('success')
                        }
                    })
                })
                obj.push(pro);
            })
        Promise.all(obj).then(function(value){
        console.log(obj ,"xxxxxxxxx") first console
            console.log(value) second console
        }).catch(function(err){
            console.log(err)
        })
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...