设置一个变量以从回调函数返回

时间:2014-03-20 13:20:10

标签: javascript

var results = null;

function fetchdata(option, callback) {
    var db = window.openDatabase('mydb', '1.0', 'Test DB', 1024*1024),
    selectQuery = "SELECT log FROM LOGS WHERE id = ?";
    db.transaction(function(tx){
            tx.executeSql(selectQuery,[option],function(tx,results){
                if( results.rows.length ) {
                     retval = unescape(results.rows.item(0)['log']);
                }
            var returnValue = callback(retval);
            return returnValue;
            });
    });
}
result = fetchdata(2,function(val){ return val; });
console.log("response***",results);

1 个答案:

答案 0 :(得分:0)

我很确定这就是你想要做的。您从事务函数中传递回调中的值...

function fetchdata(option, callback) {
  var db = window.openDatabase('mydb', '1.0', 'Test DB', 1024*1024),
  selectQuery = "SELECT log FROM LOGS WHERE id = ?";
  db.transaction(function(tx){
    tx.executeSql(selectQuery,[option],function(tx,results){
      var retval; // I added this line so you don't get an error
      if( results.rows.length ) {
        retval = unescape(results.rows.item(0)['log']);
      }
      callback(retval);
    });
  });
}

然后你可以在它返回时进行处理。

fetchdata(2, function (val) {
  console.log("response***", val);
});
相关问题