2014-05-20 3 views
0

executeSql 함수 외부에서 url 변수에 액세스하려면 어떻게해야합니까?executeSql 함수 외부에서 변수에 액세스하려면 어떻게해야합니까?

function generateUrl(id, callBack){ 
    var db = window.openDatabase("Database", "1.0", "Marktplaats", 200000); 
    db.transaction(function (tx) { 

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

    //I want to access the url variable here 
    }); 
} 
+0

잘못 태그 질문 :

tx.executeSql('SELECT * FROM searches, settings', [], function (tx, results) { var url = "http://google.nl"; callBack.call(this, url); }, null); 

는 그런 다음 같은 generateUrl를 호출 할 수 있습니다. .? –

+0

잘못 태그가 지정되는 이유는 무엇입니까? –

+1

@RajaprabhuAravindasamy 일종의 :) - WebSQL – CodingIntrigue

답변

1

은 당신이 executeSql으로 이해가되지 않습니다 제안을하는지 비동기 (내가 원하는 위치 주석). url에 값이하는

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

//This is executed 1st 
}); 

따라서 귀하의 코멘트의 시점에서, 그것은 불가능합니다. 당신이, 당신이 callBack 매개 변수는 호출자에게 다시 url를 전달하는 것을 사용하는 일을해야 무엇

:

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

다른 쿼리를 추가하고 url 변수의 값을 확장하려고합니다. 나는 그 방법으로 함수를 호출하고 거기에서 확장해야한다고 생각한다. 감사! –

+1

@SinanSamet 당신은 절대적으로 그렇게 할 수 있지만'executeSql' 콜백 내부에서 처리해야합니다. – CodingIntrigue

+1

예 이미 다른 용도로이 기능을 사용하고있었습니다. 하지만 아마도 함수에 두 번째 쿼리를 추가하는 것이 가능할 것이라고 생각했고 executeSql이 비동기 적이라는 것을 알지 못했습니다. –