Как преобразовать замыкание в js_sys :: Function? - PullRequest
0 голосов
/ 04 февраля 2020

Как преобразовать локальный closure в js_sys::Funtion?

Я хочу сделать что-то вроде этого:

let canvas = document.get_element_by_id("canvas").unwrap();
let e: web_sys::HtmlElement = canvas.dyn_into().unwrap();
let f = || {};
e.set_onresize(Some(&f.into()));

1 Ответ

0 голосов
/ 04 февраля 2020

Я нашел это.

https://rustwasm.github.io/wasm-bindgen/reference/passing-rust-closures-to-js.html

Это как:

let f = Closure::wrap(Box::new(move || { /* whatever */}) as Box<dyn FnMut()>);
e.set_onresize(Some(f.as_ref().unchecked_ref()));
f.forget(); // It is not good practice, just for simplification!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...