I have the following node.js code:
var params = initDbParams();
query().then(orders => function(){
return match(orders);
}).then(() => function(){
return place();
}).catch(err => {
console.log("Error");
});
function initDbParams() {
console.log("initDbParams Start");
var a = 1;
var b = 2;
var c = 3;
console.log("initDbParams End");
return a+b+c;
}
function update() {
return new Promise(function(resolve, reject ){
console.log("update Start");
setTimeout(function(){
console.log("update timeout over");
}, 1000);
console.log("update End");
resolve();
});
}
function del() {
return new Promise(function(resolve, reject ){
console.log("delete Start");
setTimeout(function(){
console.log("del timeout over");
}, 1200);
console.log("delete End");
resolve();
});
}
function place() {
return new Promise(function(resolve, reject ){
console.log("place Start");
setTimeout(function(){
console.log("place timeout over");
}, 1500);
console.log("place End");
resolve();
});
}
function write() {
return new Promise(function(resolve, reject ){
console.log("write Start");
setTimeout(function(){
console.log("write timeout over");
}, 2000);
console.log("write End");
resolve();
});
}
function query() {
return new Promise(function(resolve, reject ){
console.log("query Start");
setTimeout(function(){
console.log("query timeout over");
}, 3000);
var orders = [12,24,25,100];
console.log("query End");
resolve(orders);
});
}
function match(orders) {
return new Promise(function(resolve, reject ){
console.log("match Start");
while(orders.length !== 0)
{
var order = orders.shift();
del().then(() => {
write();
})
}
console.log("match End");
resolve();
});
}
I get the following output:
- initDbParams Start
- initDbParams End
- query Start
- query End
I would expect the following output:
- initDbParams Start
- initDbParams End
- query Start
- query timeout over
- query End
- match Start
- del Start
- del End
- write Start
- write End
- match End
What do I Need to change to get the expected results? Thanks for your support!