Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.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 XMLHttpRequest承诺,嵌套在一些同步代码中_Javascript_Asynchronous_Promise_Xmlhttprequest_Synchronous - Fatal编程技术网

Javascript XMLHttpRequest承诺,嵌套在一些同步代码中

Javascript XMLHttpRequest承诺,嵌套在一些同步代码中,javascript,asynchronous,promise,xmlhttprequest,synchronous,Javascript,Asynchronous,Promise,Xmlhttprequest,Synchronous,为什么不推荐使用同步xmlhttprequest 如果浏览器等待数据而不是 打开它以进行进一步单击,而无需完成数据查询 我想写一个程序,一步接一步。 此外,代码应该有适当的结构,我想知道如何 我可以实现这一点,而无需承诺 xmlhttprequest是否有任何未被“弃用”的同步替代方案 谢谢 托马斯 为什么不推荐使用同步xmlhttprequest 因为它会阻止用户访问,并为最终用户提供糟糕的用户体验 基本上,它会在页面发生时“冻结”页面 如果浏览器等待数据,我将不胜感激 但浏览器不是这样工作的

为什么不推荐使用同步xmlhttprequest

如果浏览器等待数据而不是 打开它以进行进一步单击,而无需完成数据查询

我想写一个程序,一步接一步。 此外,代码应该有适当的结构,我想知道如何 我可以实现这一点,而无需承诺

xmlhttprequest是否有任何未被“弃用”的同步替代方案

谢谢 托马斯

为什么不推荐使用同步xmlhttprequest

因为它会阻止用户访问,并为最终用户提供糟糕的用户体验

基本上,它会在页面发生时“冻结”页面

如果浏览器等待数据,我将不胜感激

但浏览器不是这样工作的。幸运的是,通过实践,浏览器的工作方式开始变得非常有意义——这对于以前主要使用同步I/O(如Python)的语言来说也足够添加“承诺”

我想写一个程序,一步接一步

您可以使用JavaScript。使用async/await代码看起来非常相似,可读性也很好。看

此外,代码应该是正确的结构,我想知道我如何才能实现这一点没有承诺地狱

“承诺地狱”指的是一个函数一旦I/O了它调用的所有其他函数。我不认为这是件坏事,也不认为这有什么问题

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已被弃用,因为它会对最终用户的体验产生有害影响。如需更多帮助,请查看。