Angular2 http同步

Ngu*_*yen 5 angular

请帮我在Angular2中做一个关于http with synchronous的例子?

我尝试如下:在组件中:

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

在服务中:

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

但是控制台显示日志在'FIRST'之前是'最后'.

谢谢.

Jig*_*gar 1

您必须创建自己的实现ConnectionConnectionBackend类,并在引导应用程序时注入它。请参阅下面的示例代码

export class XHRSynchronousConnection implements Connection    
 {

 }

export class XHRSynchronousConnectionBackend implements ConnectionBackend
{
}
Run Code Online (Sandbox Code Playgroud)

您可以按如下方式引导它

bootstrap([provide(ConnectionBackend, {useClass:XHRSynchronousBackend}),
provide(Connection,{useClass:XHRSynchronousConnection}];
Run Code Online (Sandbox Code Playgroud)

您可以在实际源代码中查看其余代码。

  • 不,拜托,不,不要这样做。对于在浏览器中运行的任何应用程序来说,这都是一个糟糕的主意,因为它会在请求进行时冻结应用程序。请参阅 MDN 文档,其中提到这是一个坏主意。https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest (3认同)