Может ли кто-нибудь предложить лучший способ структурировать это использование 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');
});
});
}
};