Skip to content Skip to sidebar Skip to footer

Sequential Execution Of Promise

I have following promise functions implemented like return new Promise(function(resolve, reject) { //logic }); cart.getBasket(req) cart.updateBasket(req) cart.updateDefaultShipme

Solution 1:

You can sequence promises without the ever increasing nesting like this:

app.post('/Billing', function(req, res) {
    cart.getBasket(req).then(function(basket) {
        return cart.updateBasket(req);
    }).then(function() {
        return cart.updateDefaultShipment(req);
    }).then(function(basket) {
        return cart.getBasketObject(basket);
    }).then(function(basketObj) {
        res.render('billing', {basket: basketObj});
    }).catch(function(error) {
        console.log(error);
        res.sendStatus(500);
    });
});

Returning a promise from a .then() autoamtically chains it to the parent promise which allows you to use a .then() handler on the parent promise rather than using deeper nesting to continue the sequence.

This automatically passed the results of the prior promise down the chain to the next operation, but it doesn't pass all prior results to subsequent promises. If you need other prior results, you can see various ways to do that here: How to chain and share prior results with Promises

Post a Comment for "Sequential Execution Of Promise"