在节点内使用 zone.js(不是 angular)

Use zone.js inside node (not angular)

我想在我的节点应用程序中使用 zone.js。

虽然我找到了一个post,其中描述了如何做到这一点,但我仍然得到 zone is not defined 错误

例如。我还找到了一个例子

let zone = require('zone');

zone.run(function () {
    zone.inTheZone = true;

   setTimeout(function () {
       console.log('in the zone: ' + !!zone.inTheZone);
   }, 0);
});

这给出了同样的错误,但我检查了 zone 对象,我注意到它 returns 一个像这样的对象

{
    enable: function() { .. }
}

所以我猜区域 API 改变了。任何帮助将不胜感激

有两件事:

  1. 需要 zone.js 而不是 zone
  2. 使用Zone.current获取对当前区域的引用

这个有效:

const zone = require('zone.js');

Zone.current.run(function () {
    zone.inTheZone = true;

    setTimeout(function () {
        console.log('in the zone: ' + !!zone.inTheZone);
    }, 0);
});