blackboxed zone.js в инструментах разработчика, но все еще входит в zone.js
- Я новичок в Angular.
- Я отлаживал ниже оценочного метода.
- когда я перехожу в инструменты разработчика, кодированный: true of Scores() входит в zone.js.
- Я записал blackboxed zone.js, но он все еще идет в zone.js и указывает на эту строку task.callback.apply(applyThis, applyArgs);
- Можете ли вы сказать мне, почему это происходит в zone.js, хотя я его в черном ящике.
- было бы здорово, если бы вы, ребята, дали мне знать, чтобы в будущем я мог это исправить сам.
- предоставив мой код ниже
мой код
scores() {
let that = this;
this.redoCount = 0;
this.undoCount = 0;
this.datasourceList = [];
this.createDatePicker();
$("#optPlayerDetaileditor").kendoEditor({
tools: ["bold", "italic", "underline"],
change: function () {
that.sportsPlayer.sportsPlayerDetailsText = this.value();
let eventData = { "eventKey": "optPlayerDetaileditor", "sourceValue": that.sportsPlayerDetailSource, "destinationValue": that.sportsPlayer.sportsPlayerDetailsText, "type": "generateBtn" }
that.eventCapture(eventData);
that.sportsPlayerDetailSource = that.sportsPlayer.sportsPlayerDetailsText;
that.saveBtnEnableDisable();
}, encoded: true,
serialization: {
semantic: false,
entities: false,
custom: function (html) {
return html.replace(/<b>/g, "<B>").replace(/<\/b>/g, "</B>").replace(/<i>/g, "<I>").replace(/<\/i>/g, "</I>").replace(/<u>/g, "<U>")
.replace(/<\/u>/g, "</U>").replace(/<br \/>/g, "\n").replace(/ /g, " ").replace(/&/g, "&").replace(/"/g, '"').replace(/>/g, ">")
.replace(/</g, "<").replace(/·/g, ".").replace(/ /g, " ");
}
},
}).text();
}
zone.js
ZoneDelegate.prototype.invokeTask = function (targetZone, task, applyThis, applyArgs) {
try {
return this._invokeTaskZS
? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this.zone, targetZone, task, applyThis, applyArgs)
: task.callback.apply(applyThis, applyArgs);
}
1 ответ
Не уверен, что вы подразумеваете под blackboxing Zone.js. Но метод task.callback.apply(applyThis, applyArgs)
вызывается для вызова любого запланированного задания.
Например, если вы выполните window.setTimeout(cb,1000);
, это на самом деле вызовет API, исправленный обезьяной, а не window.setTimeout. В этом API новый Task
объект создан со свойством callback
инициализируется с cb
прошло в setTimeout
метод. Кроме того, cb
заменяется другим обратным вызовом, называемым функцией таймера. Теперь, когда время истечет, JS VM вызовет метод обратного вызова Zone.js, т.е. timer
который в конечном итоге позвонит task.callback.apply(applyThis, applyArgs)
,
Для получения подробной информации о том, как Zone.js исправляет API, вы можете обратиться к статье ниже.