APP_INITIALIZER函数的使用方法-创新互联

这篇文章给大家分享的是APP_INITIALIZER函数的使用方法。小编觉得挺实用的,因此分享给大家学习。如下资料是关于APP_INITIALIZER的内容。

成都创新互联公司长期为超过千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为三元企业提供专业的做网站、网站设计,三元网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。

APP_INITIALIZER是在Angular2.x程序启动之前执行的一个函数,可以在这个里面进行自动登录,判断登录token,阻止启动等一系列操作,可以在AppModule类的providers中以factory的形式来配置,factory是一个返回值为promise的函数。

import { BrowserModule } from '@angular/platform-browser';
import { NgModule, APP_INITIALIZER } from '@angular/core';
import { AppComponent } from './app.component';
@NgModule({
  declarations: [
   AppComponent
  ],
  imports: [
   BrowserModule
  ],
  providers: [
   {
    provide: APP_INITIALIZER,
    useFactory: initApp,
       deps: [HttpClient],
    multi: true
   }
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }

下面我们看initApp的定义,注意一定要是返回值为Promise的函数

简单的一个Projmise例子
export function initApp() {
  return () => {
   return new Promise((resolve, reject) => {
    setTimeout(() => {
     console.log('In initApp');
     resolve(); //reject() 就会终止程序的启动
    }, 3000);
   });
  };
}

获取一种信息
export function initApp(http: HttpClient) {
  return () => {
   return http.get('https://api.github.com/users/sagar-ganatra')
    .toPromise()
    .then((resp) => {
     console.log('Response 1 - ', resp);
    });
  };
}

登录后获取一种信息
export function initApp(http: HttpClient) {
  return () => {
   return http.get('login').toPromise()
    .then((resp) => {
         this.user = resp.user;
         return this.http.get('fileInfo').toPromise();
    });
  };
}

更多相关内容:

Angular2.x APP_INITIALIZER

在 Angular 中 APP_INITIALIZER 的作用是什么

看完上述内容,你们掌握APP_INITIALIZER函数的使用方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章标题:APP_INITIALIZER函数的使用方法-创新互联
分享URL:http://ybzwz.com/article/dcdssc.html