nodejs中循环中套异步+解决async模块



var async=require("async");
var mysql=require("mysql");
var datalist = [{number:10},{number:20},{number:30},{number:40},{number:50}];
var count = 0;
var conn=mysql.createConnection({
    host : "127.0.0.1",
    user : "root",
    password: "",
    port: "3306",
    database:"langjie"
});
var test = function () {
    return count<datalist.length;
};

var fn = function(callback){
    console.log(datalist[count].number);
    count++;
    conn.query("select * from tablel",function(err,results){
        if(err){console.log(err)}else{
            //console.log(count)
            console.log("bbb")
            callback();

        }
    });


};

async.whilst(test,fn,function(err){
    if(err){
        console.log(err);
    }
    console.log('whilst结束');
});



自己的代码

var mysql=require("mysql")
var async=require("async");
var list="";
var conn=mysql.createConnection({
    host : "127.0.0.1",
    user : "root",
    password: "",
    port: "3306",
    database:"langjie"
});
conn.connect(function(){
    console.log("连接数据库succ")
});
conn.query("select * from tablel",function(err,results){
    if(err){console.log(err)}else{
        list=results;
    }

    var count = 0;
    var test = function () {
        return count<list.length;
    };

    var fn = function(callback){

            conn.query(`select * from table_card where serialNo='${list[count].serialNo}'`,function(err,result){
                if(result[0]==undefined){
                    conn.query(`insert into table_card(id,serialNo,model,latestRegNo,dealer,salesman,authType,machineNo,remark) values(null,'${list[count].serialNo}','${list[count].model}','${list[count].latestRegNo}','${list[count].dealer}','${list[count].salesman}','${list[count].cardType}','${list[count].machineNo}','${list[count].remark}')`,function(err,result){
                        if(err){console.log(err)}else{console.log("insert succ"+count)}
                        count++;
                        callback();

                    })

                }else{
                    conn.query(`update table_card set model='${list[count].model}',latestRegNo='${list[count].latestRegNo}',dealer='${list[count].dealer}',salesman='${list[count].salesman}',authType='${list[count].cardType}',machineNo='${list[count].machineNo}',remark='${list[count].remark}' where serialNo=${list[count].serialNo}`,function(err,result){
                        if(err){console.log(err)}else{console.log("update succ"+count)}
                        count++;
                        callback();
                    })

                }

            })

    };

    async.whilst(test,fn,function(err){
        if(err){
            console.log(err);
        }
        console.log('whilst结束');
    });


});

连接地址:http://blog.csdn.net/zzwwjjdj1/article/details/51857959

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值