I am trying to chain up some promises, but having trouble due to understanding the concepts.
I am trying to return some data from a database, only if the row count is less than a selected amount, otherwise it will return an error.
So far I have a method to fetch data and return a promise like so:
fetchDataPoints(dataset,fields,startTimestamp,endTimestamp){
let self = this;
let queryBody = " FROM [bi].[" + dataset + "] " +
"WHERE [timestamp] >= '" + startTimestamp.format("YYYY-MM-DD HH:mm:ss") + "' " +
"AND [timestamp] < '" + endTimestamp.format("YYYY-MM-DD HH:mm:ss") + "' " ;
let rowCountCheck = new Promise(function(resolve,reject) {
let request = new self.sql.Request();
let rowCheckQueryString = "SELECT COUNT(*) AS row_count " + queryBody;
request.query(rowCheckQueryString).then(function(recordSet){
if (recordSet[0].row_count > self._rowLimit) {
reject("Too many rows");
} else {
resolve();
}
});
});
let request = new self.sql.Request();
let fieldsString = "[timestamp],[etl_timestamp]";
for(let i = 0; i < fields.length; i++){
fieldsString += ",[" + fields[i] + "]";
}
let resultQueryString = "SELECT " + fieldsString + queryBody + " ORDER BY [timestamp] DESC";
let resultQuery = request.query(resultQueryString);
return rowCountCheck.then(resultQuery);
}
However this is not working in the expected manner. Would someone who is more familiar with Promises be able to clarify how they'd be used for this kind of thing?