0

如何检索数据数组 arrMyLatLng 函数。db.transaction(queryDB, errorCB);

  function queryDB(tx) 
{ 
tx.executeSql('SELECT * FROM Attractions', [], querySuccess, errorCB);
}

   function querySuccess(tx, results) 
  {
 var arrMyLatLng = [];
 var len = results.rows.length;
 var arrLatitude=[], arrLongitude=[];
 for (var i=0; i<len; i++)
 {
    arrLatitude[i] =  results.rows.item(i).latitude;
    arrLongitude[i] = results.rows.item(i).longitude;
    arrMyLatLng[i] = new google.maps.LatLng(arrLatitude[i], arrLongitude[i]);
 }

return  arrMyLatLng  ; // Need this array to manipulate the data from it is outside of the function.
}

谢谢

4

1 回答 1

0

您正在执行一个异步操作,该操作将在操作完成时执行其回调。因此,没有什么可以返回arrMyLatLng。所有工作arrMyLatLng都需要在回调中完成。您可以做的一件事是调用另一个函数querySuccess并传递arrMyLatLng给它:

function querySuccess(tx, results) {  
   var arrMyLatLng = [];
   var len = results.rows.length;
   var arrLatitude=[], arrLongitude=[];

   for (var i=0; i<len; i++) {
       arrLatitude[i] =  results.rows.item(i).latitude;
       arrLongitude[i] = results.rows.item(i).longitude;
       arrMyLatLng[i] = new google.maps.LatLng(arrLatitude[i], arrLongitude[i]);
   }

   someOtherFunction(arrMyLatLng);
}
于 2013-04-08T16:30:57.157 回答