无法在node.js中同步执行任务

时间:2018-03-31 15:16:08

标签: node.js mongodb promise synchronization

我是node.js的初学者,所以如果我的问题很愚蠢,请原谅。实际上,我想要做的是通过mongodb的异步函数获取列表在我得到完整列表之后尝试打印出来。虽然我正确地获得了列表,但我不知道为什么它将结果打印为null。即使我认为它可能是一个错误Promise这就是为什么我尝试使用sync模块但结果没有变化的原因。任何人都可以帮我修复此错误。

代码:

MongoClient.connect(url,function(err,db){
               if(err) throw err;

              var arr=[]
               getBlocker().then(()=>showList())

               Sync(()=>{
                getBlocker()
                showList()
               })

               function getBlocker(){
                return new Promise(resolve=>{
                    var blQ={blocked_user:data.tag_search_mail} 

         db.collection("block_list").find(blQ,{"_id":0}).toArray((err,res)=>{

                             for(let i=0;i<res.length;i++){
                                 arr.push(res[i]["blocker"])
                                 console.log(res[i]["blocker"])//but here it's printing the result correctly that means I'm getting result
                             }

                       })
                     resolve() 
                })   

            }
            function showList(){
                console.log(arr)//Here it's printing []
            }
        })

0 个答案:

没有答案