鍍金池/ 問(wèn)答/HTML/ await 等待返回不是promise 是什么原因

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

await 沒(méi)有等待回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("第一個(gè)參數(shù)限填mysql或者oracledb");
        }
    })
    
}
    
    connection.then(async function([oracle_connect,mysql_connect]){
        console.log("兩個(gè)數(shù)據(jù)庫(kù)都成功連接");
    
        let studentNoSet = await getDataFromDB("mysql",`select distinct stu_no from stu_detail`,mysql_connect);
        **console.log(studentNoSet);   //這里打印出來(lái)是數(shù)據(jù)  而不是promise** 
        /*studentNoSet.then(function(data){
            console.log(data);
            console.log("退出程序");
            process.exit(1);
        }).catch(function(err){
            console.log(err);
        });*/
    });
回答
編輯回答
扯不斷

但是 console.log出來(lái)是undefined

2018年5月17日 11:56
編輯回答
帥到炸
getDataFromDB("mysql",`select distinct stu_no from stu_detail`,mysql_connect)

這個(gè)返回的是promise吧

await 這個(gè) promise 得到的是 getDataFromDB 作為普通函數(shù)的返回值吧

2017年1月12日 14:36