Skip to content

Commit b61bed0

Browse files
authored
Ready fix (#4)
* fix(ready): Fix ready event
1 parent 691a954 commit b61bed0

File tree

5 files changed

+88
-51
lines changed

5 files changed

+88
-51
lines changed

WeChat/FeatureProbe.ts

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ import { FPToggleDetail, IParams, IOption } from "./types";
77
const PKG_VERSION = 'SDK_VERSION';
88
const UA = "WECHAT_MINIPROGRAM/" + PKG_VERSION;
99

10+
const STATUS = {
11+
PENDING: "pending",
12+
READY: "ready",
13+
}
14+
1015
const EVENTS = {
1116
READY: "ready",
1217
ERROR: "error",
@@ -22,7 +27,7 @@ class FeatureProbe extends TinyEmitter {
2227
private toggles: { [key: string]: FPToggleDetail } | null;
2328
private timer?: NodeJS.Timeout;
2429
private readyPromise: Promise<void>;
25-
30+
private status: string;
2631

2732
constructor() {
2833
super();
@@ -40,6 +45,7 @@ class FeatureProbe extends TinyEmitter {
4045
};
4146
this.on(EVENTS.READY, onReadyCallback);
4247
});
48+
this.status = STATUS.PENDING;
4349
}
4450

4551
public init({
@@ -79,9 +85,11 @@ class FeatureProbe extends TinyEmitter {
7985

8086
public async start() {
8187
const interval = this.refreshInterval;
82-
await this.fetchToggles();
83-
this.emit(EVENTS.READY);
84-
this.timer = setInterval(() => this.fetchToggles(), interval);
88+
try {
89+
await this.fetchToggles();
90+
} finally {
91+
this.timer = setInterval(() => this.fetchToggles(), interval);
92+
}
8593
}
8694

8795
public stop() {
@@ -129,11 +137,11 @@ class FeatureProbe extends TinyEmitter {
129137
}
130138

131139
public getUser(): FPUser {
132-
return Object.assign({}, this.user);
140+
return this.user;
133141
}
134142

135143
public identifyUser(user: FPUser) {
136-
this.user = Object.assign({}, user);
144+
this.user = user;
137145
}
138146

139147
public logout() {
@@ -149,6 +157,7 @@ class FeatureProbe extends TinyEmitter {
149157
user: new FPUser(),
150158
});
151159
fp.toggles = toggles;
160+
fp.successInitialized();
152161
return fp;
153162
}
154163

@@ -216,7 +225,7 @@ class FeatureProbe extends TinyEmitter {
216225
const userParam = Base64.encode(userStr);
217226
const url = this.togglesUrl;
218227

219-
await wefetch.get(url, {
228+
return wefetch.get(url, {
220229
cache: "no-cache",
221230
header: {
222231
Authorization: this.clientSdkKey,
@@ -228,9 +237,11 @@ class FeatureProbe extends TinyEmitter {
228237
}
229238
}).then((response: any) => {
230239
this.toggles = response.data;
240+
this.successInitialized();
231241
this.emit(EVENTS.UPDATE);
232242
}).catch((e: any) => {
233-
this.emit(EVENTS.ERROR, e);
243+
console.error(e);
244+
//this.emit(EVENTS.ERROR, e);
234245
});
235246
}
236247

@@ -269,6 +280,15 @@ class FeatureProbe extends TinyEmitter {
269280
});
270281
}
271282
}
283+
284+
private successInitialized() {
285+
if(this.status === STATUS.PENDING) {
286+
this.status = STATUS.READY;
287+
setTimeout(() => {
288+
this.emit(EVENTS.READY);
289+
});
290+
}
291+
}
272292
}
273293

274294
const featureProbeClient = new FeatureProbe();

docs/assets/search.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/classes/FPUser.html

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ <h4>Hierarchy</h4>
1818
<ul class="tsd-hierarchy">
1919
<li><span class="target">FPUser</span></li></ul></section><aside class="tsd-sources">
2020
<ul>
21-
<li>Defined in <a href="https://github.com/FeatureProbe/client-sdk-miniprogram/blob/ca790cf/WeChat/FPUser.ts#L1">WeChat/FPUser.ts:1</a></li></ul></aside>
21+
<li>Defined in <a href="https://github.com/panchongyang/client-sdk-miniprogram/blob/af52332/WeChat/FPUser.ts#L1">WeChat/FPUser.ts:1</a></li></ul></aside>
2222
<section class="tsd-panel-group tsd-index-group">
2323
<section class="tsd-panel tsd-index-panel">
2424
<details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary">
@@ -56,7 +56,7 @@ <h4 class="tsd-parameters-title">Parameters</h4>
5656
<h5><code class="tsd-tag ts-flagOptional">Optional</code> key: <span class="tsd-signature-type">string</span></h5></li></ul></div>
5757
<h4 class="tsd-returns-title">Returns <a href="FPUser.html" class="tsd-signature-type" data-tsd-kind="Class">FPUser</a></h4><aside class="tsd-sources">
5858
<ul>
59-
<li>Defined in <a href="https://github.com/FeatureProbe/client-sdk-miniprogram/blob/ca790cf/WeChat/FPUser.ts#L5">WeChat/FPUser.ts:5</a></li></ul></aside></li></ul></section></section>
59+
<li>Defined in <a href="https://github.com/panchongyang/client-sdk-miniprogram/blob/af52332/WeChat/FPUser.ts#L5">WeChat/FPUser.ts:5</a></li></ul></aside></li></ul></section></section>
6060
<section class="tsd-panel-group tsd-member-group">
6161
<h2>Properties</h2>
6262
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private"><a id="attrs" class="tsd-anchor"></a>
@@ -68,12 +68,12 @@ <h4>Type declaration</h4>
6868
<li class="tsd-parameter-index-signature">
6969
<h5><span class="tsd-signature-symbol">[</span>key: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]: </span><span class="tsd-signature-type">string</span></h5></li></ul></div><aside class="tsd-sources">
7070
<ul>
71-
<li>Defined in <a href="https://github.com/FeatureProbe/client-sdk-miniprogram/blob/ca790cf/WeChat/FPUser.ts#L3">WeChat/FPUser.ts:3</a></li></ul></aside></section>
71+
<li>Defined in <a href="https://github.com/panchongyang/client-sdk-miniprogram/blob/af52332/WeChat/FPUser.ts#L3">WeChat/FPUser.ts:3</a></li></ul></aside></section>
7272
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private"><a id="key" class="tsd-anchor"></a>
7373
<h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>key</span><a href="#key" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
7474
<div class="tsd-signature">key<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources">
7575
<ul>
76-
<li>Defined in <a href="https://github.com/FeatureProbe/client-sdk-miniprogram/blob/ca790cf/WeChat/FPUser.ts#L2">WeChat/FPUser.ts:2</a></li></ul></aside></section></section>
76+
<li>Defined in <a href="https://github.com/panchongyang/client-sdk-miniprogram/blob/af52332/WeChat/FPUser.ts#L2">WeChat/FPUser.ts:2</a></li></ul></aside></section></section>
7777
<section class="tsd-panel-group tsd-member-group">
7878
<h2>Methods</h2>
7979
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="extendAttrs" class="tsd-anchor"></a>
@@ -91,7 +91,7 @@ <h5>attrs: <span class="tsd-signature-symbol">{ </span><br/><span>    </span
9191
<h5><span class="tsd-signature-symbol">[</span>key: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]: </span><span class="tsd-signature-type">string</span></h5></li></ul></li></ul></div>
9292
<h4 class="tsd-returns-title">Returns <a href="FPUser.html" class="tsd-signature-type" data-tsd-kind="Class">FPUser</a></h4><aside class="tsd-sources">
9393
<ul>
94-
<li>Defined in <a href="https://github.com/FeatureProbe/client-sdk-miniprogram/blob/ca790cf/WeChat/FPUser.ts#L23">WeChat/FPUser.ts:23</a></li></ul></aside></li></ul></section>
94+
<li>Defined in <a href="https://github.com/panchongyang/client-sdk-miniprogram/blob/af52332/WeChat/FPUser.ts#L23">WeChat/FPUser.ts:23</a></li></ul></aside></li></ul></section>
9595
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="get" class="tsd-anchor"></a>
9696
<h3 class="tsd-anchor-link"><span>get</span><a href="#get" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
9797
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -104,7 +104,7 @@ <h4 class="tsd-parameters-title">Parameters</h4>
104104
<h5>attrName: <span class="tsd-signature-type">string</span></h5></li></ul></div>
105105
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><aside class="tsd-sources">
106106
<ul>
107-
<li>Defined in <a href="https://github.com/FeatureProbe/client-sdk-miniprogram/blob/ca790cf/WeChat/FPUser.ts#L30">WeChat/FPUser.ts:30</a></li></ul></aside></li></ul></section>
107+
<li>Defined in <a href="https://github.com/panchongyang/client-sdk-miniprogram/blob/af52332/WeChat/FPUser.ts#L30">WeChat/FPUser.ts:30</a></li></ul></aside></li></ul></section>
108108
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="getAttrs" class="tsd-anchor"></a>
109109
<h3 class="tsd-anchor-link"><span>get<wbr/>Attrs</span><a href="#getAttrs" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
110110
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -115,15 +115,15 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">{ </spa
115115
<li class="tsd-parameter-index-signature">
116116
<h5><span class="tsd-signature-symbol">[</span>key: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]: </span><span class="tsd-signature-type">string</span></h5></li></ul><aside class="tsd-sources">
117117
<ul>
118-
<li>Defined in <a href="https://github.com/FeatureProbe/client-sdk-miniprogram/blob/ca790cf/WeChat/FPUser.ts#L19">WeChat/FPUser.ts:19</a></li></ul></aside></li></ul></section>
118+
<li>Defined in <a href="https://github.com/panchongyang/client-sdk-miniprogram/blob/af52332/WeChat/FPUser.ts#L19">WeChat/FPUser.ts:19</a></li></ul></aside></li></ul></section>
119119
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="getKey" class="tsd-anchor"></a>
120120
<h3 class="tsd-anchor-link"><span>get<wbr/>Key</span><a href="#getKey" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
121121
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
122122
<li class="tsd-signature tsd-anchor-link" id="getKey.getKey-1">get<wbr/>Key<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><a href="#getKey.getKey-1" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></li>
123123
<li class="tsd-description">
124124
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><aside class="tsd-sources">
125125
<ul>
126-
<li>Defined in <a href="https://github.com/FeatureProbe/client-sdk-miniprogram/blob/ca790cf/WeChat/FPUser.ts#L15">WeChat/FPUser.ts:15</a></li></ul></aside></li></ul></section>
126+
<li>Defined in <a href="https://github.com/panchongyang/client-sdk-miniprogram/blob/af52332/WeChat/FPUser.ts#L15">WeChat/FPUser.ts:15</a></li></ul></aside></li></ul></section>
127127
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="stableRollout" class="tsd-anchor"></a>
128128
<h3 class="tsd-anchor-link"><span>stable<wbr/>Rollout</span><a href="#stableRollout" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
129129
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -136,7 +136,7 @@ <h4 class="tsd-parameters-title">Parameters</h4>
136136
<h5>key: <span class="tsd-signature-type">string</span></h5></li></ul></div>
137137
<h4 class="tsd-returns-title">Returns <a href="FPUser.html" class="tsd-signature-type" data-tsd-kind="Class">FPUser</a></h4><aside class="tsd-sources">
138138
<ul>
139-
<li>Defined in <a href="https://github.com/FeatureProbe/client-sdk-miniprogram/blob/ca790cf/WeChat/FPUser.ts#L34">WeChat/FPUser.ts:34</a></li></ul></aside></li></ul></section>
139+
<li>Defined in <a href="https://github.com/panchongyang/client-sdk-miniprogram/blob/af52332/WeChat/FPUser.ts#L34">WeChat/FPUser.ts:34</a></li></ul></aside></li></ul></section>
140140
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="with" class="tsd-anchor"></a>
141141
<h3 class="tsd-anchor-link"><span>with</span><a href="#with" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
142142
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -151,7 +151,7 @@ <h5>attrName: <span class="tsd-signature-type">string</span></h5></li>
151151
<h5>attrValue: <span class="tsd-signature-type">string</span></h5></li></ul></div>
152152
<h4 class="tsd-returns-title">Returns <a href="FPUser.html" class="tsd-signature-type" data-tsd-kind="Class">FPUser</a></h4><aside class="tsd-sources">
153153
<ul>
154-
<li>Defined in <a href="https://github.com/FeatureProbe/client-sdk-miniprogram/blob/ca790cf/WeChat/FPUser.ts#L10">WeChat/FPUser.ts:10</a></li></ul></aside></li></ul></section></section></div>
154+
<li>Defined in <a href="https://github.com/panchongyang/client-sdk-miniprogram/blob/af52332/WeChat/FPUser.ts#L10">WeChat/FPUser.ts:10</a></li></ul></aside></li></ul></section></section></div>
155155
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
156156
<div class="tsd-navigation settings">
157157
<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">

0 commit comments

Comments
 (0)