問題タブ [rust-tokio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1871 参照

rust - トレイト バウンド Send が満たされていないため、ボックス化された Future を tokio::run できません

パラメータに応じて、オプションで将来を実行するか、何もしない関数があります。Box返される 2 つの先物、tokio::prelude::future::Done<Item=(), Error=()>すぐに に解決されるOk(())a と、tokio::timer::Delay使用しているand_thenaを前後に配置して、 と のmap_err両方を に変換しようItemErrorしました()。で先物を実行しようとすると、これはうまくいかないようですtokio::run

これは、次のエラー メッセージでコンパイルに失敗します。

Box<Future...>を実装していないようSendですが、私には意味がありません。Future私が返す型は両方の implementであるため、標準ライブラリの自動実装であるため、そうすべきだSendと私には思えます。ここで何が欠けていますか?Boximpl Send for Box<T> where T: Send