Skip to content

Instantly share code, notes, and snippets.

@JiaLiPassion
Created July 10, 2018 08:21
Show Gist options
  • Save JiaLiPassion/5b4b8b502aa7817f8fcf6d6be359a49f to your computer and use it in GitHub Desktop.
Save JiaLiPassion/5b4b8b502aa7817f8fcf6d6be359a49f to your computer and use it in GitHub Desktop.
var currentZoneFrame = {zone: root, parent: null};
class Zone {
static get current() {
return currentZoneFrame.zone;
}
run(callback, applyThis, applyArgs) {
_currentZoneFrame = {parent: _currentZoneFrame, zone: this};
try {
return callback.apply(applyThis, applyArgs);
} finally {
_currentZoneFrame = _currentZoneFrame.parent;
}
}
}
@shlyk
Copy link

shlyk commented Jun 28, 2019

var _currentZoneFrame = {zone: root, parent: null};
class Zone {
  static get current() {
    return _currentZoneFrame.zone; 
  }

  run(callback, applyThis, applyArgs) {
    _currentZoneFrame = {parent: _currentZoneFrame, zone: this};
    try {
      return callback.apply(applyThis, applyArgs);
    } finally {
      _currentZoneFrame = _currentZoneFrame.parent;
    } 
  }
}

The global variable must begin with an underscore.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment