await 等待返回不是promise 是什么原因

await 没有等待回promise

async function getDataFromDB(type,sql,connect_handler,data=[]){
    return new Promise(function(resolve,reject){
        if(type == "mysql"){
            if(data.length == 0){
                let t = connect_handler.query(sql,function(err,result,fields){
                    if(err){
                        //console.log(err);
                        reject(err);
                    }else{
                        //console.log(results);
                        // Promise.resolve(results);
                        resolve(result);
                    }
                })

                
            }else{
                connect_handler.query(sql,data,function(err,result,fields){
                    if(err){
                        //console.log(err);
                        reject(err);    
                    }else{
                        
                        resolve(result);
                    }
                })
            }
        
        }else if(type == "oracledb"){
            if(data.length == 0){
                connect_handler.execute(sql,function(err,result){
                    if(err){
                        //console.log(err);
                        reject(err);
                    }else{
                        resolve(result);
                    }
                })
            }else{
                connect_handler.execute(sql,data,function(err,result){
                    if(err){
                        //console.log(err);
                        reject(err);
                    }else{
                        //console.log(result);
                        resolve(result);
                    }
                })
            }
            
        }else{
            console.error("第一个参数限填mysql或者oracledb");
        }
    })
    
}
    
    connection.then(async function([oracle_connect,mysql_connect]){
        console.log("两个数据库都成功连接");
    
        let studentNoSet = await getDataFromDB("mysql",`select distinct stu_no from stu_detail`,mysql_connect);
        **console.log(studentNoSet);   //这里打印出来是数据  而不是promise** 
        /*studentNoSet.then(function(data){
            console.log(data);
            console.log("退出程序");
            process.exit(1);
        }).catch(function(err){
            console.log(err);
        });*/
    });
阅读 3.2k
2 个回答
getDataFromDB("mysql",`select distinct stu_no from stu_detail`,mysql_connect)

这个返回的是promise吧

await 这个 promise 得到的是 getDataFromDB 作为普通函数的返回值吧

但是 console.log出来是undefined

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题