当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript Application.ready方法代码示例

本文整理汇总了TypeScript中core/application.Application.ready方法的典型用法代码示例。如果您正苦于以下问题:TypeScript Application.ready方法的具体用法?TypeScript Application.ready怎么用?TypeScript Application.ready使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在core/application.Application的用法示例。


在下文中一共展示了Application.ready方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: getAccountForInstance

  public getAccountForInstance(cloudProvider: string, instanceId: string, app: Application): IPromise<string> {
    return app.ready().then(() => {
      const serverGroups = app.getDataSource('serverGroups').data as IServerGroup[];
      const loadBalancers = app.getDataSource('loadBalancers').data as ILoadBalancer[];
      const loadBalancerServerGroups = loadBalancers.map(lb => lb.serverGroups).reduce((acc, sg) => acc.concat(sg), []);

      const hasInstance = (obj: IServerGroup | ILoadBalancer) => {
        return obj.cloudProvider === cloudProvider && (obj.instances || []).some(instance => instance.id === instanceId);
      };

      const all: (IServerGroup | ILoadBalancer)[] = [].concat(serverGroups).concat(loadBalancers).concat(loadBalancerServerGroups);
      const found = all.find(hasInstance);
      return found && found.account;
    });
  }
开发者ID:robfletcher,项目名称:deck,代码行数:15,代码来源:versionedCloudProvider.service.ts

示例2: if

    return this.getAccounts().then(accounts => {
      const skins = accounts.reduce((versions, account) => {
        if (account.cloudProvider === cloudProvider && !!account.skin) {
          versions.add(account.skin);
        }
        return versions;
      }, new Set<string>());

      if (skins.size === 0) {
        // Rely on the CloudProviderRegistry to return the default skin implementation.
        return null;
      } else if (skins.size === 1) {
        return Array.from(skins)[0];
      }

      return app.ready().then(() => {
        for (const serverGroup of app.getDataSource('serverGroups').data as IServerGroup[]) {
          if (
            serverGroup.cloudProvider === cloudProvider &&
            (serverGroup.instances || []).some(instance => instance.id === instanceId)
          ) {
            return this.mapAccountToSkin(serverGroup.account);
          }
        }
        for (const loadBalancer of app.getDataSource('loadBalancers').data as ILoadBalancer[]) {
          if (loadBalancer.cloudProvider === cloudProvider) {
            if ((loadBalancer.instances || []).some(instance => instance.id === instanceId)) {
              return this.mapAccountToSkin(loadBalancer.account);
            }
            // Hit a crazy Babel bug - can't return from a nested for...of loop.
            for (let i = 0; i < (loadBalancer.serverGroups || []).length; i++) {
              const serverGroup = loadBalancer.serverGroups[i];
              if (
                serverGroup.isDisabled &&
                (serverGroup.instances || []).some(instance => instance.id === instanceId)
              ) {
                return this.mapAccountToSkin(loadBalancer.account);
              }
            }
          }
        }
        return null;
      });
    });
开发者ID:emjburns,项目名称:deck,代码行数:44,代码来源:skin.service.ts


注:本文中的core/application.Application.ready方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。