Zone.js example

by amindunited

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/zone.js/0.8.29/zone.min.js"></script>

JavaScript

const myZone = Zone.current.fork({
	name: 'cheese-doodle',
  onScheduleTask: (parentZoneDelegate, currentZone, target, task) => {
  	console.log('parentZoneDelegate', parentZoneDelegate, 'currentZone', currentZone);
    parentZoneDelegate.scheduleTask(target, task);
  },
  onInvokeTask(parent, current, target, task) {
    console.log('Invoking ' + task.source + ' => ' + task.data.handleId);
    parent.invokeTask(target, task);
  }
});

myZone.run(() => {

  setTimeout(() => {
    console.log('set timeout 1 second');
  }, 1000);
  
  setTimeout(() => {
    console.log('set timeout 2 second');
  }, 2000);
  
  setTimeout(() => {
  	console.log('before fetch...');
    fetch('https://jsonplaceholder.typicode.com/todos/1')
      .then(response => response.json())
      .then(json => console.log('after fetch', json))
  }, 3000);

});