Javascript Ajax异步不返回值

Javascript Ajax异步不返回值,javascript,jquery,ajax,Javascript,Jquery,Ajax,我被困在这一点上,谁能在这段代码上帮助我!!。。。它是一个异步点,在获取值之前返回。它试图使async:false,但无法获取返回值 function Routing(){ var from= document.getElementById("from").value; var to =document.getElementById("to").value; var fromcoordinates=coordinates(from); var tocoordin

我被困在这一点上,谁能在这段代码上帮助我!!。。。它是一个异步点,在获取值之前返回。它试图使
async:false
,但无法获取返回值

function Routing(){
    var from= document.getElementById("from").value;
    var to =document.getElementById("to").value;

    var fromcoordinates=coordinates(from);
    var tocoordinates=coordinates(to);

    console.log(fromcoordinates);
}
function coordinates(values){
 var cords;
    $.ajax({
         url: 'https://geocoder.ls.hereapi.com/6.2/geocode.json',
         type: 'GET',  
         dataType: 'jsonp',
         async : false,
         jsonp: 'jsoncallback',

         data: {
           searchtext: values,
           gen: '9',
           apiKey: 's_WF6U2g60ucHbmnYIyuieeUWnkT0jshGf4mD33kpwI'
         },
         success: function (data) {

          var x = JSON.parse(JSON.stringify(data));
          cords=[x.Response.View[0].Result[0].Location.DisplayPosition.Latitude, x.Response.View[0].Result[0].Location.DisplayPosition.Longitude];
          console.log(cords);
         }

       });
    console.log(cords);
    return cords;
      }

success
回调将在函数执行并返回
cords
后触发。相反,您可以将
坐标
包装在承诺中,然后使用
承诺。所有

函数路由(){
var from=document.getElementById(“from”).value;
var to=document.getElementById(“to”).value;
var fromcoordinates=坐标(from);
var tocoordinates=坐标(to);
所有([fromcoordinates,tocoordinates])。然后(值=>{
//值[0]=来自
//值[1]=到
console.log(值[0]);
console.log(值[1]);
});
}
函数坐标(值){
返回新承诺((解决、拒绝)=>{
$.ajax({
网址:'https://geocoder.ls.hereapi.com/6.2/geocode.json',
键入:“GET”,
数据类型:“jsonp”,
async:false,
jsonp:'jsoncallback',
数据:{
searchtext:值,
gen:'9',
apiKey:'s_wf6u2g60uchbmnyiyuieuwnkt0jshgf4md33kpwi'
},
成功:功能(数据){
var x=JSON.parse(JSON.stringify(data));
//用坐标解决承诺
解析([x.Response.View[0]。结果[0]。位置。显示位置。纬度,x.Response.View[0]。结果[0]。位置。显示位置。经度]);
}
});
});
}

您可以发布“值”的值吗?这些是在调用坐标方法时将转换为坐标的位置名称!为什么不在success函数中返回跳线,它应该可以正常工作。@Prabhjotsinghkaint我认为在success中返回它不会有帮助。我已经运行了代码,它成功地返回了结果。Matt U我可以将返回的值保存在变量中吗?因为我想进一步使用这些值!您可以使用async/await语法,如果您可以使用该语法(例如,受支持的话),这将使它更简洁。查看MDN如果这不可用,那么如果不在任何需要的地方传递回调或返回
Promise
对象,就很难做到。