首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在开发工具中黑箱化的zone.js,但它仍然进入zone.js

在开发工具中黑箱化的zone.js,但它仍然进入zone.js
EN

Stack Overflow用户
提问于 2017-12-31 02:06:40
回答 1查看 215关注 0票数 0
  • 我对角质很陌生。
  • 我在调试分数以下的方法。
  • 当我进入开发人员工具时,编码: true ()将进入zone.js。
  • 我黑了zone.js,但它仍然进入zone.js,指向这一行task.callback.apply(applyThis,applyArgs);
  • 你能告诉我为什么去zone.js,即使我黑了它。
  • 如果你们能让我知道,那就太好了,这样以后我就可以自己解决了。
  • 提供下面的代码

我的代码

代码语言:javascript
复制
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(/&nbsp;/g, " ").replace(/&amp;/g, "&").replace(/&quot;/g, '"').replace(/&gt;/g, ">")
                    .replace(/&lt;/g, "<").replace(/&middot;/g, ".").replace(/&nbsp;/g, " ");
            }
        },
    }).text();
}

zone.js

代码语言:javascript
复制
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);
}
EN

回答 1

Stack Overflow用户

发布于 2018-05-15 07:11:14

不知道你说的黑拳击Zone.js是什么意思。但是调用task.callback.apply(applyThis, applyArgs)方法来调用任何计划的任务。

如果您执行window.setTimeout(cb,1000);,这实际上将调用猴补丁API而不是window.setTimeout。在该API中,一个新的Task对象是已创建,其属性callback由传递给setTimeout方法的cb初始化。此外,cb被另一个名为计时函数的回调所取代。现在,当时间到期时,JS将调用Zone.js的回调方法,即timer,它最终将调用task.callback.apply(applyThis, applyArgs)

有关如何使用Zone.js猴子补丁程序接口的详细信息,请参阅下面的文章。

https://medium.com/reverse-engineering-angular/angular-deep-dive-zone-js-how-does-it-monkey-patches-various-apis-9cc1c7fcc321

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48039391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档