Node.js - Using the async lib - async.foreach with object

前端 未结 2 1751
说谎
说谎 2020-11-30 23:31

I am using the node async lib - https://github.com/caolan/async#forEach and would like to iterate through an object and print out its index key. Once complete I wou

2条回答
  •  被撕碎了的回忆
    2020-12-01 00:13

    async.each is very useful and powerful function which is provided by Async Lib .it have 3 fields 1-collection/array 2- iteration 3-callback the collection is referred to the array or collection of objects and iteration is refer to the each iteration and callback is optional . if we are giving callback then it will return the response or say result which you want to show you in the frontend

    Applies the function iteratee to each item in coll, in parallel. The iteratee is called with an item from the list, and a callback for when it has finished. If the iteratee passes an error to its callback, the main callback (for the each function) is immediately called with the error.

    Note, that since this function applies iteratee to each item in parallel, there is no guarantee that the iteratee functions will complete in order.

    exapmle-

     var updateEventCredit = function ( userId, amount ,callback) {
        async.each(userId, function(id, next) {
        var incentiveData = new domain.incentive({
        user_id:userId,
            userName: id.userName,
            amount: id.totalJeeneePrice,
            description: id.description,
        schemeType:id.schemeType
        });
    
        incentiveData.save(function (err, result) {
            if (err) {
                next(err);
            } else {
                     domain.Events.findOneAndUpdate({
                        user_id: id.ids
                    }, {
                        $inc: {
                            eventsCredit: id.totalJeeneePrice
                        }
                    },{new:true}, function (err, result) {
                        if (err) {
                            Logger.info("Update status", err)
                            next(err);
                        } else {
                         Logger.info("Update status", result)
                         sendContributionNotification(id.ids,id.totalJeeneePrice);
                         next(null,null);       
                        }
                    });
            }
        });
    

提交回复
热议问题