fix: eval (#3877)
This commit is contained in:
1 parent
a1107de0c0
commit
9ffa42392f
10 files changed
+31
-6
No files matched your search
@@ -4,16 +4,24 @@ import {
|
||||
WeakDioxusChannel,
|
||||
} from "../../../document/src/ts/eval";
|
||||
|
||||
window.__nextChannelId = 0;
|
||||
window.__channels = [];
|
||||
|
||||
export class WebDioxusChannel extends DioxusChannel {
|
||||
js_to_rust: Channel;
|
||||
rust_to_js: Channel;
|
||||
owner: any;
|
||||
id: number;
|
||||
|
||||
constructor(owner: any) {
|
||||
super();
|
||||
this.owner = owner;
|
||||
this.js_to_rust = new Channel();
|
||||
this.rust_to_js = new Channel();
|
||||
|
||||
this.id = window.__nextChannelId;
|
||||
window.__channels[this.id] = this;
|
||||
window.__nextChannelId += 1;
|
||||
}
|
||||
|
||||
// Return a weak reference to this channel
|
||||
@@ -40,4 +48,9 @@ export class WebDioxusChannel extends DioxusChannel {
|
||||
async rustRecv(): Promise<any> {
|
||||
return await this.js_to_rust.recv();
|
||||
}
|
||||
|
||||
// Close the channel, dropping it.
|
||||
close(): void {
|
||||
window.__channels[this.id] = null;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user