Javascript 如何访问executeSql函数外部的变量

Javascript 如何访问executeSql函数外部的变量,javascript,jquery,scope,web-sql,Javascript,Jquery,Scope,Web Sql,如何访问executeSql函数外部的url变量?(在我想要的地方发表评论) 您的建议没有意义,因为executeSql是异步的 tx.executeSql('SELECT * FROM searches, settings', [], function (tx, results) { var url = "http://google.nl"; // This is executed 2nd }, null); //This is executed 1st }); 因此,

如何访问executeSql函数外部的
url
变量?(在我想要的地方发表评论)


您的建议没有意义,因为
executeSql
是异步的

tx.executeSql('SELECT * FROM searches, settings', [], function (tx, results) {
     var url = "http://google.nl";
     // This is executed 2nd
}, null);

//This is executed 1st
});
因此,在您的评论中,
url
不可能有值

您应该做的是使用
callBack
参数,您必须将
url
传递回调用者:

tx.executeSql('SELECT * FROM searches, settings', [], function (tx, results) {
     var url = "http://google.nl";
     callBack.call(this, url);
}, null);
然后您可以调用
generateUrl
,如下所示:

generateUrl(15, function(url) {
    // URL is visible now
    console.log(url);
});

标记错误的问题..?为什么标记错误?@RajaprabhuAravindasamy排序:)-WebSQLI想添加另一个查询并用它的值扩展url变量。我想我只需要这样调用函数,然后在那里扩展它。谢谢@SinanSamet您完全可以这样做,但您需要从
executeSql
回调内部执行。是的,我已经在以这种方式使用函数用于其他目的。但我想也许可以在函数中添加第二个查询,但我不知道executeSql是异步的,谢谢您告诉我:)
generateUrl(15, function(url) {
    // URL is visible now
    console.log(url);
});