I am running into an issue when I use promise inside a loop in node.js. Below is a simple example, I am using cheerio to scrape a web page and do the following:
$('.xyz').each(function(){
fn1()
.then(fn2)
.then(fn3)
});
function fn1() {
var deferred = Q.defer();
console.log("1");
deferred.resolve();
return deferred.promise;
}
function fn2() {
var deferred = Q.defer();
console.log("2");
deferred.resolve();
return deferred.promise;
}
function fn3() {
var deferred = Q.defer();
console.log("3");
deferred.resolve();
return deferred.promise;
}
I was expecting the final output to be 123123123, but instead I am getting 111222333. Could someone explain why this is happening. I am pretty new to node.js and could use some help.