在async.forever完成其执行节点js

时间:2018-06-06 12:42:42

标签: node.js

当async.forever中的所有代码都已完成时,我想调用另一个方法。以下是我的代码:

app.post('/insert', function(req, res) // this is the node post method
{
    var flag        =   0;
    var offset      =   0;
    // this the async forever method
    async.forever(function chk(next)
    {
        if(flag==1)
        {
        }
        else
        {
            connection.query('SELECT nlc,id,user_id,coin_id FROM tbl_buy WHERE `type`="buy" AND `status`="available" AND coin_id="'+jsondata.coinid+'" AND order_type="market" order by id ASC LIMIT '+offset+',1',function (error,results, fields)
            { 
                if(results.length > 0)
                {
                    flag = 1;
                    executeOrder(results,results_arr);
                }
                else
                {  
                    offset++;
                    next();
                }
            });
         }
    },
    function finished(err)   
    {
        if(err)  console.log(err); 

        executeLimitOrders(jsondata.coinid);//want to call this , so that my function will be executed at last.
    }
    )
});

我尝试在完成方法之后调用它,但是该方法被称为异步。也是,尝试在if条件中调用它if if(flag == 1)这里没有进入if条件。我尝试在自定义方法executeOrder中调用该方法的另一种方法(results,results_arr); ,它仍然同步执行代码。我希望它在执行executeOrder后执行(results,results_arr);方法

请提示如何调用我的方法executeLimitOrders(jsondata.coinid);在async.forever中的所有内容都被执行后。或者在executeOrder之后alttest(results,results_arr);方法已执行。

0 个答案:

没有答案