PostHogs onFeatureFlags 回调函数被多次调用

PostHogs onFeatureFlags callback function being called multiple times

提问人:Abdurrehman Afridi 提问时间:10/30/2023 更新时间:10/30/2023 访问量:22

问:

我正在开发一个 Angular 应用程序功能,在选择角色后,用户有 50% 的机会被重定向到屏幕 A 或屏幕 B,通过功能标志确定。我的问题是posthog.onFeatureFlags被多次调用,即使角色选择逻辑似乎只触发一次。

// in template
<div *ngFor="let role of roles">
      <app-role-card
        (click)="onRoleSelected(role.role, role.roleValue)"
      >
      </app-role-card>
    </div>

// in ts file
onRoleSelected(role: Role, roleValue: RoleValue): void {
    this.postHogService.sendEvent(eventNames.slp_signup_roleSelectionComplete_NW00, {
      $set: { up_signup_profile_role: role },
      ep_roleSelected: role,
    });
    console.log('roles selected');

    posthog.onFeatureFlags(() => {
      console.log('onfeature flag called I am in designation comp');
      const relevantFeatureFlag = this.roleToFeatureFlagMap[role];
      const featureFlagPayload = getFeatureFlag(relevantFeatureFlag)
      const destinationRoute = this.getDestinationRoute();
      this.router.navigate([destinationRoute]);
    });
  }
  1. 我看到选择的角色只记录了一次。
  2. 事件slp_signup_roleSelectionComplete_NW00触发一次。
  3. 但是,名为 I am in designation comp 的 onfeature 标志会多次记录,如以下屏幕截图所示: 日志

为了获得更多上下文,在此之后还有另一个选择屏幕,当用户在该屏幕上选择一个选项时,即使我没有调用该组件,也会再次记录。这表明组件中的 posthog.onFeatureFlags 正在被重新调用。 以下是 posthog 在项目中的设置方式onfeatureflag called I am in designation compposthog.onFeatureFlagsdesignation

main.ts

import { init as initPostHog } from './app/shared/postHog/posthog';

initPostHog();

在posthog.ts

export function onFeatureFlags(cb: any): void {
  posthog.onFeatureFlags(cb);
}

export function init(): void {
  posthog.init(environment.POSTHOG_API_KEY, {
    api_host: environment.POSTHOG_API_HOST,
   });
}

export function getFeatureFlag(label: string): string | boolean | undefined {
  return posthog.getFeatureFlag(label);
}


export function capture(eventName: string, eventData: any): void {
  if (!environment.cs) {
    posthog.capture(eventName, eventData);
  }
}

任何关于这里出问题的地方的指示。

我尝试更改检测策略,但没有奏效。 在构造函数或 ngOnInit 中调用功能标志有效,并且函数只调用一次,但我不想在每次渲染时调用多个功能标志(每个角色一个),只想在选择角色后调用相关功能标志。 由于我需要重定向用户,因此我只想被调用一次,如果稍后再次调用,则用户将再次被重定向。 如何阻止它再次被调用?posthog.onFeatureFlags

angular 回调 功能标志 posthog

评论


答: 暂无答案