gpt4 book ai didi

javascript - 如何使用wasm-bindgen调用先前定义的任意javascript函数Rust?

转载 作者:行者123 更新时间:2023-12-03 11:31:34 24 4
gpt4 key购买 nike

在我的javascript中,在调用wasm之前,我定义了一个功能jalert,稍后我想使用wasm从Rust进行调用。我在wasm-bindgen的文档中找不到如何调用我以前在javascript中定义的任意函数,如下所示。我已经启用了alert和console.log之类的功能,因为它们已经是javascript的一部分,但是我无法使用此功能jalert来工作。我在浏览器中收到一个错误,说它没有定义。有了警报功能,它不会提示。

    function jalert(sometext) {
alert(sometext);
}

jalert("I am Claudio");

// This works from Javascript
在Rust文件 lib.rs中:
    #[wasm_bindgen]
extern "C" {
fn alert(s: &str);
fn jalert(s: &str);
}

#[wasm_bindgen]
pub fn run_alert(item: &str) {
jalert(&format!("This is WASM calling javascript function jalert and {}", item));
alert(&format!("This is WASM and {}", item));
}

// The alert() code works fine. The jalert() call in run_alert() gives me a browser error that jalert is not defined

最佳答案

我想说您需要将#wasm_bindgen添加到您的方法声明中:

#[wasm_bindgen]
extern "C" {
#[wasm_bindgen(method, js_name = alert]
fn alert(s: &str);
#[wasm_bindgen(method, js_name = jalert]
fn jalert(s: &str);
}

关于javascript - 如何使用wasm-bindgen调用先前定义的任意javascript函数Rust?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62935592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com