title: Angular 2 Http Request to Promise returns zone obj instead of actual data
body: <p>I'm trying to have quick test of ng 2 http to return real data. I know there is a better/longer way to do it. This is meant to be quick and simple, not best practices. </p>
  
  <p>I know the server returns data because I can see it in another terminal window. The json is very simple {a:b} because it is just a proof of concept.</p>
  
  <p>I don't care if it is a promise or an observable as long as it hangs around to return the real data right there -- so I can figure out that it actually works -- not that I want to write production code that way. </p>
  
  <pre><code>//app.data.service.ts
  import { Injectable }     from '@angular/core';
  import { Http, Response} from '@angular/http';
  import { Observable } from 'rxjs/Rx';
  import 'rxjs/add/operator/toPromise';
  
  @Injectable() export class DataService {
      constructor(private http: Http) { 
      }
      public getItems(){
         return this.http.get('http://localhost:8090/data/config.txt')
             .toPromise()
             .then(data =&gt; Promise.resolve(data.json()));
      }
  }
  
  // app.data.service.spec.ts
  /* tslint:disable:no-unused-variable */
  import { AppComponent } from './app.component';
  import { TestBed, inject, fakeAsync } from '@angular/core/testing';
  import { MockBackend, MockConnection } from '@angular/http/testing';
  import { By } from '@angular/platform-browser';
  import { HttpModule } from '@angular/http';
  import { DataService } from './app.data.service';
  describe('DataService', function () {
    let dataService: DataService;
    beforeEach(() =&gt; {
      TestBed.configureTestingModule({
        imports: [HttpModule],
        declarations: [AppComponent],
        providers: [DataService]
      });
      dataService = TestBed.get(DataService);
    });
    it('should be instantiated by the testbed', () =&gt; {
      expect(dataService).toBeDefined();
    });
    it('should return get', () =&gt; {
      let data = dataService.getItems();
      console.log('test data= ' + data);
      console.log('test string(data)= ' + JSON.stringify(data));
    });
  });
  
  //tail end of tests.html
        &lt;tr class="system-out"&gt;
          &lt;td colspan="3"&gt;&lt;strong&gt;System output:&lt;/strong&gt;&lt;br /&gt;Chrome 53.0.2785 (Mac OS X 10.11.6) LOG: 'WARNING: System.import could not load "systemjs.config.extras.js"; continuing without it.'
  &lt;br /&gt;Chrome 53.0.2785 (Mac OS X 10.11.6) LOG: Error{originalErr: Error{}}
  &lt;br /&gt;Chrome 53.0.2785 (Mac OS X 10.11.6) LOG: 'test data= [object Object]'
  &lt;br /&gt;Chrome 53.0.2785 (Mac OS X 10.11.6) LOG: 'test string(data)= {"__zone_symbol__state":null,"__zone_symbol__value":[]}'
  &lt;/td&gt;
  </code></pre>