Async的使用,为何这样写实现不了顺序执行?
发布于 12 年前 作者 simpledb 4352 次浏览 最后一次编辑是 8 年前
async.series(
            [
                function(callback){
                    writeLog(callback);
                },
                function(callback){
                    readLog(callback);
                },
                function(callback){
                    funcEnd(res, callback);
                }
            ]
        );

想顺序执行这三个方法,但是总是并发执行,是不是哪里写的不对呢?

function writeLog(callback){
fs.openSync(qpage,'w',0666);
for (var i = 1; i <= cnt; i++ ) {
    client.hgetall(i, function(err, obj) {
        fs.appendFileSync(qpage, "<br />" +util.inspect(obj), encoding='utf8');
    });
}
callback(null);}

function readLog(callback){
query = fs.readFileSync(qpage, 'utf8');
callback(null);}

function funcEnd(res, callback){
res.end(query, 'utf8');
callback(null);}
5 回复

你的业务代码都是同步执行的啊

仅仅几个需求是,毕竟还是因为并发才选择的Node

目测没什么问题。。。。应该是顺序执行的吧

哦,发现一个问题了 client.hgetall,这个是异步的还是同步的?如果是异步的话, 就会有问题

@saber - -还真是这个的问题!

回到顶部