Может ли кто-нибудь предложить лучший способ структурировать это использование Promises? Я новичок в Promises и задаюсь вопросом, не хватает ли я чего-то о том, как построить цепочку событий.
Примечание. Я намерен НЕ использовать rej [ect] здесь. То, что вы видите guatanrees только res [olve] возвращается. Это означает, что для этого кода требуется только один путь для обработки возвращаемого значения. Таким образом, возвращаемый код в нем более упрощен.
Это может помочь узнать, если вы его не узнаете, это взято из модуля, который я создал. Подумайте об этом как о Дао.
module.exports = {
    dbConnection: function () {
        return { user: 'sa', password: 'mypassword', server: 'localhost', database: 'mydb' };
    },
    CanIConnectToTheDB: function () {
        return new Promise(function (res, rej) {
            var sql = require('mssql');
            var myDao = require('./myDao');
            var cn = new sql.ConnectionPool(myDao.dbConnection());
            cn.connect().then(function () {
                var req = new sql.Request(cn);
                var qry = 'select serverproperty(\'productversion\') as \'rs\'';
                req.query(qry)
                    .then(function (rs) {
                        qry = 'select isnull(object_id(\'SomeObjectIKnowExists\'), -1)';
                        req.query(qry)
                            .then(function (rss) {
                                res(' CONNECTED// MASTER DB SUCCESS// MY DB SUCCESS');
                            })
                            .catch(function (err) {
                                res(' CONNECTED// MASTER DB SUCCESS// ISSUE QUERYING MY DB //' + err + '//');
                            });
                    })
                    .catch(function (er) {
                        res(' CONNECTED// COULD NOT QUERY MASTER DB //' + er + '//');
                    });
            })
            .catch(function () {
                res(' CAN NOT CONNECT');
            });
        });
    }
};
