fix page.mp中subscribeAll

This commit is contained in:
wkj 2023-12-01 17:47:48 +08:00
parent 82c2d28934
commit 1efd9816ca
3 changed files with 25 additions and 24 deletions

View File

@ -34,21 +34,22 @@ const oakBehavior = Behavior({
});
},
removeFeatureSub(name, callback) {
const f = this.featuresSubscribed.find(ele => ele.callback === callback && ele.name === name);
const f = this.featuresSubscribed.find((ele) => ele.callback === callback && ele.name === name);
pull(this.featuresSubscribed, f);
f.unsubHandler && f.unsubHandler();
},
unsubscribeAll() {
this.featuresSubscribed.forEach(ele => {
this.featuresSubscribed.forEach((ele) => {
assert(ele.unsubHandler);
ele.unsubHandler();
ele.unsubHandler = undefined;
});
},
subscribeAll() {
this.featuresSubscribed.forEach(ele => {
assert(!ele.unsubHandler);
ele.unsubHandler = this.features[ele.name].subscribe(ele.callback);
this.featuresSubscribed.forEach((ele) => {
if (!ele.unsubHandler) {
ele.unsubHandler = this.features[ele.name].subscribe(ele.callback);
}
});
},
iAmThePage() {

View File

@ -37,21 +37,22 @@ const oakBehavior = Behavior({
});
},
removeFeatureSub(name, callback) {
const f = this.featuresSubscribed.find(ele => ele.callback === callback && ele.name === name);
const f = this.featuresSubscribed.find((ele) => ele.callback === callback && ele.name === name);
(0, lodash_1.pull)(this.featuresSubscribed, f);
f.unsubHandler && f.unsubHandler();
},
unsubscribeAll() {
this.featuresSubscribed.forEach(ele => {
this.featuresSubscribed.forEach((ele) => {
(0, assert_1.assert)(ele.unsubHandler);
ele.unsubHandler();
ele.unsubHandler = undefined;
});
},
subscribeAll() {
this.featuresSubscribed.forEach(ele => {
(0, assert_1.assert)(!ele.unsubHandler);
ele.unsubHandler = this.features[ele.name].subscribe(ele.callback);
this.featuresSubscribed.forEach((ele) => {
if (!ele.unsubHandler) {
ele.unsubHandler = this.features[ele.name].subscribe(ele.callback);
}
});
},
iAmThePage() {

View File

@ -82,7 +82,7 @@ const oakBehavior = Behavior<
featuresSubscribed: Array<{
name: string;
callback: () => void;
unsubHandler?: () => void;
unsubHandler?: () => void;
}>;
features: BasicFeatures<
EDD,
@ -122,29 +122,28 @@ const oakBehavior = Behavior<
removeFeatureSub(name: string, callback: (args?: any) => void) {
const f = this.featuresSubscribed.find(
ele => ele.callback === callback && ele.name === name
(ele) => ele.callback === callback && ele.name === name
)!;
pull(this.featuresSubscribed, f);
f.unsubHandler && f.unsubHandler();
},
unsubscribeAll() {
this.featuresSubscribed.forEach(
ele => {
assert(ele.unsubHandler);
ele.unsubHandler();
ele.unsubHandler = undefined;
}
);
this.featuresSubscribed.forEach((ele) => {
assert(ele.unsubHandler);
ele.unsubHandler();
ele.unsubHandler = undefined;
});
},
subscribeAll() {
this.featuresSubscribed.forEach(
ele => {
assert(!ele.unsubHandler);
ele.unsubHandler = this.features[ele.name].subscribe(ele.callback);
this.featuresSubscribed.forEach((ele) => {
if (!ele.unsubHandler) {
ele.unsubHandler = this.features[ele.name].subscribe(
ele.callback
);
}
);
});
},
iAmThePage() {