2015-12-29 20 views
5

Si prega di aiutarmi a fare un esempio su http con sincrono in Angular2?Angular2 http synchronous

ho provato, come di seguito: In componente:

getAllAddress(){ 
    this.addressService.getAllAddress().then(
      result => { 
       this.data = result.list; 
       this.onChangeTable(this.config, null); 
       console.log('FIRST'); 
      } 
     ); 
    console.log('LAST'); 
} 

In servizio:

public getAllAddress(){ 
    return this.__http.get('LOCATION') 
    .map((res) => { 
     return res.json() 
    }) 
    .toPromise(); 
} 

Ma il log della console spettacolo è 'ULTIMO' prima 'PRIMA'.

Grazie.

risposta

1

Sarà necessario creare la propria classe di implementazione Connection e ConnectionBackend e iniettarla durante l'avvio dell'applicazione. Vedere il codice di esempio

export class XHRSynchronousConnection implements Connection  
{ 

} 

export class XHRSynchronousConnectionBackend implements ConnectionBackend 
{ 
} 

È possibile il bootstrap come segue

bootstrap([provide(ConnectionBackend, {useClass:XHRSynchronousBackend}), 
provide(Connection,{useClass:XHRSynchronousConnection}]; 

Potete vedere il resto del codice in actual source code.

+3

no, per favore, no, non farlo. questa è una pessima idea per qualsiasi applicazione in esecuzione nel browser, poiché congela letteralmente l'applicazione mentre la richiesta è in volo. Vedi i documenti MDN che dicono che questa è una cattiva idea. https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest – robwormald

Problemi correlati