Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 异步等待状态已解决,但ajax未完成_Javascript_Ajax_Promise_Async Await - Fatal编程技术网

Javascript 异步等待状态已解决,但ajax未完成

Javascript 异步等待状态已解决,但ajax未完成,javascript,ajax,promise,async-await,Javascript,Ajax,Promise,Async Await,我试图等待getJson调用并处理返回的数据。我已经看到了很多答案,并尝试使用$.ajax的异步:false(由于查询是跨域的,所以不起作用)、回调和基本$.ajax调用的.done部分。现在我正在尝试异步等待。我的代码如下所示: var ths=getTrailheads(turl); console.log(“trailheads承诺”); 控制台日志(ths); ths.then(功能(数据){ addTrailheadsToMap(数据); }); 异步函数getTrailheads(

我试图等待
getJson
调用并处理返回的数据。我已经看到了很多答案,并尝试使用
$.ajax
异步:false
(由于查询是跨域的,所以不起作用)、回调和基本
$.ajax
调用的
.done
部分。现在我正在尝试异步等待。我的代码如下所示:

var ths=getTrailheads(turl);
console.log(“trailheads承诺”);
控制台日志(ths);
ths.then(功能(数据){
addTrailheadsToMap(数据);
});
异步函数getTrailheads(turl){
var result=await$.ajax({
网址:turl,
数据类型:“json”
});
返回结果;

}
您在
getTrailheads
内部正确地使用了async/await,但是调用它的代码也需要使用async/await或以其他方式处理承诺。假设代码可以是
async
,您可能只需要在调用之前添加
wait

var ths=await getTrailheads(turl)


async/await或多或少是承诺之上的语法糖,这就是为什么不等待
getTrailheads
返回承诺的结果。您还可以使用
getTrailheads(turl)。然后(ths=>{…})
如果效果更好的话。

var ths=getTrailheads(turl)应为
var ths=await getTrailheads(turl)。您需要等待异步调用的结果谢谢。但是当我这样做的时候,我得到了对象,但是状态仍然是“正在处理”,你需要一直异步,或者在某个时候使用承诺模式来处理回调当你的异步函数完成时在你的更新中,你在等待
然后
之前记录函数的结果(承诺)。移动
控制台。将
呼叫记录在
内,然后
块谢谢。在更新中,它不会返回承诺,而是返回对象(因此它不可更改)。谢谢。我用我目前的情况更新了这个问题。我取回了目标而不是承诺,但当我得到它时它仍然不完整。标记为已接受,因为这是正确的方式。最终,是服务器端的一些零星故障让我绊倒了。谢谢你的帮助!