MB
Size: a a a
MB
MB
Z
Э
Z
Z
Э
MB
Z
S
// Interface of some_function() is part of trait that needs to be implementedЯ пытаюсь реализовать функцию, которая должна вернуть стрим, которые с интервалов запрашивает цену и возвращает её.
fn some_function() -> futures::stream::BoxStream<'static, f64> {
async_std::stream::interval(self.duration)
.map(async move |_| fetch_price().await )
.boxed()
}
async fn fetch_price() -> f64;
fetch_price() была не async, то всё хорошо работает через map. Но fetch_price() возвращается Future, и кажется, я немогу сделать что-то элементарное.p
S
Э
// Interface of some_function() is part of trait that needs to be implementedЯ пытаюсь реализовать функцию, которая должна вернуть стрим, которые с интервалов запрашивает цену и возвращает её.
fn some_function() -> futures::stream::BoxStream<'static, f64> {
async_std::stream::interval(self.duration)
.map(async move |_| fetch_price().await )
.boxed()
}
async fn fetch_price() -> f64;
fetch_price() была не async, то всё хорошо работает через map. Но fetch_price() возвращается Future, и кажется, я немогу сделать что-то элементарное.async fn some_function() должен заставить эту штуку работать, наверное.S
// Interface of some_function() is part of trait that needs to be implementedЯ пытаюсь реализовать функцию, которая должна вернуть стрим, которые с интервалов запрашивает цену и возвращает её.
fn some_function() -> futures::stream::BoxStream<'static, f64> {
async_std::stream::interval(self.duration)
.map(async move |_| fetch_price().await )
.boxed()
}
async fn fetch_price() -> f64;
fetch_price() была не async, то всё хорошо работает через map. Но fetch_price() возвращается Future, и кажется, я немогу сделать что-то элементарное.and_then, но такого метода не нахожу :/Э
p
and_then, но такого метода не нахожу :/Э

.map() не принимает асинхронные функции, только обычные.Э
fetch_price превратить в обычную функцию с некоторым количеством магии кеширования внутри, чтобы она мгновенно и без асинка отдавала результат, а результат этот асинхронно обновлялся где-то в другом месте сам по себе.Э
fetch_price пусть блочится, а не асинхронно работает.