【问题标题】:Use zone.js to detect current execution context from anywhere?使用 zone.js 从任何地方检测当前执行上下文?
【发布时间】:2015-01-25 16:51:03
【问题描述】:

使用zone.js 是否可以从任何地方 确定当前执行上下文?即,如果一个区域绑定函数调用另一个调用setTimeout(myFn) 的函数,我可以从myFn() 中确定当前执行上下文吗?如果是这样,请提供一个简单的示例说明如何执行此操作。

【问题讨论】:

    标签: javascript angularjs monkeypatching


    【解决方案1】:

    每次您fork()一个区域,访问该区域上下文中的zone对象将始终返回分叉的zone

    以下实验演示了这种行为:

    var b = function() { console.log('-->',zone) }; 
    var a = function() { setTimeout(b,5); }; 
    zone.fork().run(function() { zone.x = 'hi'; a(); }); 
    setTimeout(function() { console.log('==>', zone); }, 1);
    setTimeout(function() { console.log('==>', zone); }, 10);
    

    将其粘贴到控制台时会发生以下情况:

    【讨论】:

      猜你喜欢
      • 2015-08-25
      • 1970-01-01
      • 2012-04-24
      • 1970-01-01
      • 2018-04-12
      • 2020-11-24
      • 1970-01-01
      • 2019-06-09
      • 1970-01-01
      相关资源
      最近更新 更多