Javascript XMLHttpRequest承诺,嵌套在一些同步代码中
为什么不推荐使用同步xmlhttprequest 如果浏览器等待数据而不是 打开它以进行进一步单击,而无需完成数据查询 我想写一个程序,一步接一步。 此外,代码应该有适当的结构,我想知道如何 我可以实现这一点,而无需承诺 xmlhttprequest是否有任何未被“弃用”的同步替代方案 谢谢 托马斯 为什么不推荐使用同步xmlhttprequest 因为它会阻止用户访问,并为最终用户提供糟糕的用户体验 基本上,它会在页面发生时“冻结”页面 如果浏览器等待数据,我将不胜感激 但浏览器不是这样工作的。幸运的是,通过实践,浏览器的工作方式开始变得非常有意义——这对于以前主要使用同步I/O(如Python)的语言来说也足够添加“承诺” 我想写一个程序,一步接一步 您可以使用JavaScript。使用async/await代码看起来非常相似,可读性也很好。看 此外,代码应该是正确的结构,我想知道我如何才能实现这一点没有承诺地狱 “承诺地狱”指的是一个函数一旦I/O了它调用的所有其他函数。我不认为这是件坏事,也不认为这有什么问题Javascript XMLHttpRequest承诺,嵌套在一些同步代码中,javascript,asynchronous,promise,xmlhttprequest,synchronous,Javascript,Asynchronous,Promise,Xmlhttprequest,Synchronous,为什么不推荐使用同步xmlhttprequest 如果浏览器等待数据而不是 打开它以进行进一步单击,而无需完成数据查询 我想写一个程序,一步接一步。 此外,代码应该有适当的结构,我想知道如何 我可以实现这一点,而无需承诺 xmlhttprequest是否有任何未被“弃用”的同步替代方案 谢谢 托马斯 为什么不推荐使用同步xmlhttprequest 因为它会阻止用户访问,并为最终用户提供糟糕的用户体验 基本上,它会在页面发生时“冻结”页面 如果浏览器等待数据,我将不胜感激 但浏览器不是这样工作的
async function sequence() {
let one = await fetch('/your-endpoint?someParam').then(x => x.json());
// do something with one
let param = one.param;
let two = await fetch('/your-other?param=' + param).then(x => x.json());
// do something with second call
}
sequence();
也就是说,async/await允许您同步编写异步代码
不要期望一下子就理解这一点——没关系,这需要时间。您从哪里看到xmlhttprequest被弃用了?请详细说明您要完成的任务,并提供一些代码,以便其他人能够更好地帮助您。@BigHeadCreations.:)为什么您需要进行同步呼叫?为什么?因为它会锁定浏览器并可能导致问题。简单的promise结构可以与同步调用相同。chrome带来以下警告:Test2.html:34[Deprection]主线程上的同步XMLHttpRequest已被弃用,因为它会对最终用户的体验产生有害影响。如需更多帮助,请查看。