node.js異步編程解決方案之Promise用法

node.js異步編程解決方案之Promisenode

var dbBase = require('../db/db_base');
var school_info_db = require('../db/school_info_db');

function dbService(wxCorpid) {
    return new Promise(function(resolve, reject) {
            school_info_db.get_school_info(wxCorpid, function(err, val) {
                resolve(val);
            });
        })
        .then(function(schoolInfo) {
            return new Promise(function(resolve, reject) {
                resolve(dbBase.init(schoolInfo.dbConnString));
            })
        })
        .catch(function(error) {
            // 處理前面Promise產生的錯誤
            console.log('數據庫鏈接池建立失敗');
        });
}

async function optErrLog(wxCorpid) {
    var mysql = await dbService(wxCorpid);
    Promise.resolve(mysql)
        .then(function(mysql) {
            return new Promise(function(resolve, reject) {
                mysql.query('select * from bas_school;', function(err, rlt, feld) {
                    resolve(rlt);
                })
            })
        })
        .then(result => console.log(JSON.stringify(result)))
}

module.exports = {
    optErrLog: optErrLog
}
相關文章
相關標籤/搜索