javascript async await 一则示例

一则示例

import { KeycloakService } from 'keycloak-angular';

export function initializer(keycloak: KeycloakService): () => Promise<any> {

  return (): Promise<any> => {

    return new Promise(async (resolve, reject) => {

      try {

        await keycloak.init(

       {

   config: {

     url: 'http://10.110.20.19/auth',

     realm: 'iottest',

     clientId: 'iot-web'

   },

   initOptions: {

     onLoad: 'login-required',

     checkLoginIframe: false

   },

   bearerExcludedUrls: [

     '/assets',

     '/clients/public'

   ],

 }

        );

       console.log("aa");

       await keycloak.getToken().then(res => {

        document.cookie = "iotToken=" + res;

        console.log("bb");

       });

       console.log("cc");

        resolve();

      } catch (error) {

        reject(error);

      }

    });

  };

}

控制台输出结果:

aa

bb

cc

将代码稍作修改(将keycloak.getToken()前的await修饰符去掉)

import { KeycloakService } from 'keycloak-angular';

export function initializer(keycloak: KeycloakService): () => Promise<any> {

  return (): Promise<any> => {

    return new Promise(async (resolve, reject) => {

      try {

        await keycloak.init(

       {

   config: {

     url: 'http://10.110.20.19/auth',

     realm: 'iottest',

     clientId: 'iot-web'

   },

   initOptions: {

     onLoad: 'login-required',

     checkLoginIframe: false

   },

   bearerExcludedUrls: [

     '/assets',

     '/clients/public'

   ],

 }

        );

       console.log("aa");

      //await 

       keycloak.getToken().then(res => {

        document.cookie = "iotToken=" + res;

        console.log("bb");

       });

      console.log("cc");

        resolve();

      } catch (error) {

        reject(error);

      }

    });

  };

}

控制台输出结果:

aa

cc

bb

猜你喜欢

转载自huangqiqing123.iteye.com/blog/2422703