В угловом2 необходимо создать глобальный запрос на перехват http, чтобы захватить в том числе запросы страницы через templateUrl
в @Component
декоратор.Ошибка: больше запланированных задач было запланировано. Использование XMLHttpRequest.open в Angular 2
Тогда я реализовал следующим образом:
(function (open) {
XMLHttpRequest.prototype.open = function (method, url, async, user, pass) {
this.addEventListener("readystatechange", function (data) {
if (data.target.readyState === 4) {
console.log(data);
console.log(data.target.responseURL);
}
}, false);
open.call(this, method, url, async, user, pass);
};
})(XMLHttpRequest.prototype.open);
Но эта реализация работает, но в конечном итоге вызывает повторяющуюся ошибку на консоли, при создании запроса на сервер через объект Http
, несмотря на реализацию, кажется, продолжают работу должным образом.
Ошибка заключается в следующем:
core.umd.js:3370 EXCEPTION: More tasks executed then were scheduled.
core.umd.js:3375 ORIGINAL STACKTRACE:
core.umd.js:3376 Error: More tasks executed then were scheduled.
at ZoneDelegate._updateTaskCount (zone.js:269)
at ZoneDelegate.invokeTask (zone.js:240)
at Zone.runTask (zone.js:136)
at ZoneTask.invoke (zone.js:304)
at XMLHttpRequest.<anonymous> (zone.js:1266)
at ZoneDelegate.invokeTask (zone.js:236)
at Object.onInvokeTask (core.umd.js:6149)
at ZoneDelegate.invokeTask (zone.js:235)
at Zone.runTask (zone.js:136)
at XMLHttpRequest.ZoneTask.invoke (zone.js:304)
И до того, как ошибка появляется следующее warnnig:
Synchronous XMLHttpRequest on the main thread is deprecated
because of its detrimental effects to the end user's experience.
For more help, check https://xhr.spec.whatwg.org/.
я увидел zone.js конспекты и управляет асинхронных запросов, и я считаю, что линия open.call(this, method, url, async, user, pass);
является причиной проблемы. Поэтому я думаю, что я должен сделать этот блок кода также управляемым zone.js, так как похоже, что я делаю запрос из этого с этим перехватчиком. Это верно? Как мне это сделать?
Окружающая среда:
- Угловой: 2.0.2;
- zone.js: 0.6.25