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 ; // Необходим данный массив, чтобы манипулировать данными из него уже за пределами этой функции. }

Спасибо.

Abyx
  • 31,143
  • 1
    callback это делается и только. – zb' Apr 08 '13 at 14:52
  • Так у вас функция возвращает уже arrMyLatLng, о каком извлечении вы говорите? – Zhukov Roman Apr 08 '13 at 16:30
  • callback это параметр для функции (либо переменная/функция в родидельской области видимости) который содержит функцию вызываемой после текущей вместо return соответсвенно

    my_callback(arrMyLatLng);

    – zb' Apr 08 '13 at 16:59
  • Т.е. вы предлагаете любой следующий код, для которого необходим arrMyLatLng помещать в тело функции querySuccess? – Радик Камалов Apr 08 '13 at 17:02
  • аккуратно если завернуть, то это не так уж и страшно, – zb' Apr 08 '13 at 17:19
  • функция querySuccess вызывается бесконечное число раз(т.к. постоянно запрашиваются координаты). Получается функции, которые будут внутри нее, тоже будут постоянно повторяться. Как решить эту проблему? – Радик Камалов Apr 08 '13 at 18:02
  • 1
    создать callback функции столько раз сколько нужно (не думаю что больше 3х) и передавать их как параметр для queryDB, который в свою очередь будет передавать их querySuccess, как передавать параметр я уже показал в предыдущем ответе – zb' Apr 08 '13 at 19:33
  • Передать количество повторений для callback? – Радик Камалов Apr 09 '13 at 13:23

0 Answers0