Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未按顺序执行MySQL查询(NodeJS)_Javascript_Mysql_Node.js_Asynchronous_Async.js - Fatal编程技术网

Javascript 未按顺序执行MySQL查询(NodeJS)

Javascript 未按顺序执行MySQL查询(NodeJS),javascript,mysql,node.js,asynchronous,async.js,Javascript,Mysql,Node.js,Asynchronous,Async.js,我需要在一个循环中执行一系列MySQL插入,然后在它们全部完成后执行一些操作。但是,我不确定回调放在哪里-- 及 服务器控制台显示消息“提交完成”在MySQL插入之前注册。有什么办法可以解决这个问题吗?您需要的是一个异步控制流库来处理按顺序执行异步函数循环的问题 查看asyncnpm模块(),尤其是async.eachSeries函数。这将允许您循环所有内容,并针对每个内容,逐个运行创建查询。插入完毕后,您将有一个最后的回调函数。我尝试了这个方法,但在我看来,MySQL查询将立即启动操作并回调,

我需要在一个循环中执行一系列MySQL插入,然后在它们全部完成后执行一些操作。但是,我不确定回调放在哪里--


服务器控制台显示消息“提交完成”在MySQL插入之前注册。有什么办法可以解决这个问题吗?

您需要的是一个异步控制流库来处理按顺序执行异步函数循环的问题


查看
async
npm模块(),尤其是
async.eachSeries
函数。这将允许您循环所有
内容
,并针对每个
内容
,逐个运行创建查询。插入完毕后,您将有一个最后的回调函数。

我尝试了这个方法,但在我看来,MySQL查询将立即启动操作并回调,即使它们没有完成。是这样吗?在
函数内部调用
callback()
。完成
函数而不是在函数外部,然后就可以开始了
.complete(函数(err,newSchedule){console.log('thing added successfully');callback();}
for (var q=0; q<things.length; q++)
{

thing
    .create({
        active_time: time
        rule: rule
        next: next_object,
        percentage: object.percent,
        enabled: 1,
    })
    .complete(function(err, newSchedule) {
        console.log('thing added successfully');

    })

}
if (valid) {

        async.each(arrayOfObjects, tools.submitThing, function()
        {
            console.log("finished submissions")
        });
exports.submitThing = function(thingObject, callback) {

   thing
    .create({
        active_time: time
        rule: rule
        next: next_object,
        percentage: object.percent,
        enabled: 1,
    })
    .complete(function(err, newSchedule) {
        console.log('thing added successfully');

    })

    callback();

}