【发布时间】:2019-06-04 14:09:40
【问题描述】:
我在promise 中使用基本的XMLHttpRequest。由于promise 的异步特性,我一直认为XMLHttpRequest 同步很好,但由于我的浏览器会警告我,所以我想确认一下。
mwe 将是:
call(arg) {
return new Promise(resolve => {
let xhr = new XMLHttpRequest();
xhr.open('GET', 'http://localhost:8080?' + arg.name, false);
xhr.send();
resolve({body: {result: xhr.responseText}});
});
}
【问题讨论】:
-
不,这不好。在某些特定工具之外,JavaScript 是单线程的,如果您使用同步 XHR,您将导致 UI 在 Promise 中像往常一样挂起,就像您在事件侦听器中一样,
setTimeout回调,...。 -
旁注:如果你想要启用承诺的 ajax,只需使用
fetch。
标签: javascript promise xmlhttprequest