我有两个功能
function otherfun(val){
var data = {'latitude': val[0], 'longitude': val[1]};
$.post(URL, data, function(response){
if(response){
// I want to return response from here
}
else{ alert('Error! :('); }
});
}
function initMap() {
var pos = {};
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var pos = {
lat: position.coords.latitude,
lng: position.coords.longitude
};
var output = otherfun([pos.lat,pos.lng]);
alert(output);
// use output's value further
}
函数initMap()最初执行。我将lat和lng的值传递给otherfun()
我想:
答案 0 :(得分:1)
在两个函数中拆分initMap。在otherfun之后调用原始init和回调函数。
function otherfun(val) {
var data = {'latitude': val[0], 'longitude': val[1]};
$.post(URL, data, function(response){
if(response){
otherfunCallback(response); // Call a callback function
}
else{ alert('Error! :('); }
});
}
function initMap() {
var pos = {};
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var pos = {
lat: position.coords.latitude,
lng: position.coords.longitude
};
otherfun([pos.lat,pos.lng]);
}
// The callback function that alert for the output
function otherfunCallback(data) {
// ... extract the data you need
var output = ...;
alert(output);
}
如果需要存储输出结果,可以将其保存在非区域设置变量中。