JavaScript异步回调

时间:2014-04-22 14:05:51

标签: javascript asynchronous callback

我有一些代码从WEB SQL数据库中选择值,使用以下代码完成:

db.transaction(function(tx) {
            tx.executeSql(query, params_array, result, error);
        });

在回调函数"结果"我只是将受影响的行返回到调用db.transaction()

的函数

电话看起来像这样:

database.select(<some params, not imporntant for now>, function(result){
//do stuff
}

如果我调用它一次我得到了我期望的db的输出,但是当我多次执行此调用时,只会执行最后一次调用的回调函数(我尝试了匿名和命名的回调函数)。

如何在不将回调嵌入彼此的情况下使这种异步调用工作:

database.select(<some params>, function(result){
    //do stuff
    //call again
    database.select(<some params>, function(result){
        //and so on...
    });
}); 

1 个答案:

答案 0 :(得分:0)

你可以为你的功能命名,但这个可读性要低10倍:D

database.select(<some params>, first);

function first(result) {
    //do stuff
    //call again
    database.select(<some params>, second);
}

function second() {
    //and so on...
}