gpt4 book ai didi

javascript - 如何使javascript获取同步?

转载 作者:可可西里 更新时间:2023-11-01 02:41:47 28 4
gpt4 key购买 nike

我正在使用 fetch 从 api 获取数据 json。工作正常,但我必须在各种调用中重复使用它,因此它需要同步,否则我需要某种方法在每个组件的提取完成时更新界面。

function fetchOHLC(yUrl){
fetch(yUrl)
.then(response => response.json())
.then(function(response) {
alert(JSON.stringify(response.query));

var t = response.created;
var o = response.open;
var h = response.high;
var l = response.low;
var c = response.close;

return {t,o,h,l,c};

})
.catch(function(error) {
console.log(error);
});
}

var fetchData = fetchOHLC(yUrl);
alert(fetchData); // empty ?

除了使用fetch,还有其他方法可以实现吗? (我不想优先使用 jquery)。

谢谢

编辑

问题是关于 fetch-api,不是 ajax,也不是 jquery,所以请不要在没有正确阅读的情况下将其标记为这些问题的重复。

最佳答案

fetch 仅用于异步调用,但有一些选项:

选项 1

如果XMLHttpRequest也可以,那你可以用async: false ,这将进行同步调用。

选项 2

使用 async/await,它在引擎盖下是异步的,但感觉它是同步的,参见 https://stackoverflow.com/a/54950884/2590616

选项 3

or else I need some way to update the interface when the fetch completes for each component

这听起来像 fetch + Promise.all() 会很合适,参见 https://stackoverflow.com/a/52013616/2590616

关于javascript - 如何使javascript获取同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44735669/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com