为什么不建议使用sync xmlhttprequest?
如果浏览器等待数据而不是等待数据,我将不胜感激 将其打开以进一步单击,而无需完成数据查询。
我想编写一个程序,而后一步又一步。 此外,代码应该适当地结构化,我想知道如何 我可以在没有承诺的情况下实现这一目标。
是否有xmlhttprequest的同步替代品,而该替代品未“弃用”?
谢谢 托马斯
答案 0 :(得分:1)
为什么不建议使用sync xmlhttprequest?
因为它阻止了Event Loop,并给最终用户带来了糟糕的用户体验。
基本上,它会在页面发生时“冻结”它。
如果浏览器等待数据,我将不胜感激
这不是浏览器的工作方式。幸运的是,通过实践,浏览器 的工作方式开始变得非常有意义-足以使以前主要使用同步I / O的语言(如Python)也可以添加“承诺”。
我只想编写一个程序,而后一个步骤就可以了。
您可以在JavaScript中return responses from asynchronous calls。使用异步/等待代码看起来非常相似且可读。参见the async function
mdn page。
此外,代码应该正确地结构化,我想知道如何在没有承诺地狱的情况下实现这一目标。
“承诺地狱”指的是一旦某个函数对它调用的所有其他函数执行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();
也就是说,异步/等待使您可以同步编写异步代码。
不要期望一次全部理解-没关系,这需要时间。