0

我正在开发一个 rust-webassembly 迷你项目,我必须在其中调用第三个 api。我正在使用此模板https://github.com/rustwasm/rust-webpack-template/tree/master/template作为我的示例。

我正在使用reqwest来访问 http 请求。

[dependencies]
reqwest = { version = "0.10", features = ["blocking"] }
json = "*

我在执行以下代码时遇到问题。

fn get_response() -> JsonValue {let resp = 
reqwest::blocking::get("https://httpbin.org/ip")
.unwrap()
.text().unwrap();json::parse(&resp).unwrap()}

当我执行cargo build时,这段代码工作正常。但是当我执行npm run build时,它给了我编译错误。

在此处输入图像描述

看起来npm run build 在内部根据https://github.com/rustwasm/rust-webpack-template/tree/master/template命中 cargo build 。

谁能帮我我想念的东西?

我不想在我的用例中使用异步。请让我知道是否还有其他相同的图书馆。

4

1 回答 1

0

blocking在得到webassembly中有实现的响应后。我重构了我的代码。

async fn get_response() -> JsonValue {
let resp = reqwest::get("https://httpbin.org/ip").await.unwrap()
.text().await.unwrap();
json::parse(&resp).unwrap()
}
#[wasm_bindgen(start)]
pub fn main_js() -> Result<(), JsValue> {
//-- Code snippet
let on_click = EventListener::new(&submit_box, "click", move |_event| {
let parsed: JsonValue = get_response().await;
//alert(&input_box.get_attribute("value").unwrap());
});
on_click.forget();
Ok(())
}

现在我收到了这个编译错误。

在此处输入图像描述

请让我知道我在这里缺少什么。

于 2020-06-15T09:10:36.630 回答