Mysql 节点js中foreach循环中的查询问题

Mysql 节点js中foreach循环中的查询问题,mysql,node.js,foreach,Mysql,Node.js,Foreach,我正在从一个查询中获取结果,并希望在下一个查询中传递结果中的值。这是我的密码。但它不起作用,我也尝试了setTimeOut函数 dbcon.query('SELECT ci_offers.*, ci_advertisers.id as merchant_id, ci_advertisers.full_name, ci_advertisers.phone, ci_advertisers.companylogo FROM ci_offers, ci_advertisers WHERE ci_offe

我正在从一个查询中获取结果,并希望在下一个查询中传递结果中的值。这是我的密码。但它不起作用,我也尝试了
setTimeOut
函数

dbcon.query('SELECT ci_offers.*, ci_advertisers.id as merchant_id, ci_advertisers.full_name, ci_advertisers.phone, ci_advertisers.companylogo FROM ci_offers, ci_advertisers WHERE ci_offers.advertiser_id = ci_advertisers.id AND ci_offers.is_active=1', function(error, results, fields) {

      if (error) throw error;

      if (results.length > 0) {
            var objectOffer;
            var objCoin;
            // async.forEachOf(results, function (dataElement, i, inner_callback){

            results.forEach((val) => {

                objectOffer = jsonParser(val);

                var token_id = objectOffer.token_id;

                var redeem_coin_grabbed = 0;

                if (token_id > 0) {

                  dbcon.query('SELECT count(id) as coingrabbed FROM ci_grabcoin_details_for_game WHERE user_id = ? AND coin_id= 33', [user_id, token_id], function(error1, results1, fields1) {

                    if (error1) throw error1;

                    });


                }
                val["coingrabbed"] = redeem_coin_grabbed;

                final.push(val);
            });
        }

        res.send(final);
    });

请用这个想法检查这是否有效


告诉我们您面临的确切错误。什么不起作用?你期望什么,你得到什么?代码在哪里(大约)失败?
let final = [];

dbcon.query('SELECT ci_offers.*, ci_advertisers.id as merchant_id, ci_advertisers.full_name, ci_advertisers.phone, ci_advertisers.companylogo FROM ci_offers, ci_advertisers WHERE ci_offers.advertiser_id = ci_advertisers.id AND ci_offers.is_active=1', function(error, results, fields) {

  if (error) throw error;

  if (results.length > 0) {
        var objectOffer;
        var objCoin;
        // async.forEachOf(results, function (dataElement, i, inner_callback){

        let done = false;
        let count = 0;
        const markDone = (err) => {
            count++;
            if ( !done && results.length === count) {
                done = true;
                res.send(final);
            }
        };


        results.forEach((val) => {

            objectOffer = jsonParser(val);

            var token_id = objectOffer.token_id;

            var redeem_coin_grabbed = 0;

            if (token_id > 0) {

              dbcon.query('SELECT count(id) as coingrabbed FROM ci_grabcoin_details_for_game WHERE user_id = ? AND coin_id= 33', [user_id, token_id], function(error1, results1, fields1) {

                if (error1) throw error1;

                });


            }
            val["coingrabbed"] = redeem_coin_grabbed;

            final.push(val);

            markDone();

        });
    }

});