169 похожих чатов

Всем привет! Подскажите пожалуйста, корректен ли данный код?

val method1 = async { getMethod1Data() }
val method2 = async { getMethod2Data() }
val method3 = async { getMethod3Data() }
awaitAll(method1, method2, method3)

val resultOfMethod1 = method1.await()
val resultOfMethod2 = method2.await()

Если нет, то как мне получить результат у deferred, после вызова метода awaitAll()? Интересно, не выполняется ли функция getMethod*N*Data() несколько раз из-за вызова awaitAll и await

5 ответов

7 просмотров
Full-upgrade Автор вопроса

Возвращаемый тип у методов getMethod*N*Data() разный и поэтому возвращается список deferred с типом Any Ищу решение без дополнительных проверок на тип

Да, на первый взгляд всё ок. await не может запустить вычисление ещё раз.

Только не очень понятно, а зачем вообще awaitAll?

А разве предложенный (первый) вариант не страдает тем же, что и map { it.await() } по сравнению с awaitAll()? Т.е. если method3 упадёт с ошибкой, то запускаемый код разве не подождёт method1 и method2 вместо того, чтобы упасть сразу?

Глеб Минаев
А разве предложенный (первый) вариант не страдает ...

нет, не страдает первый вариант, т.к. при вызове функции async сразу запускается выполнение как в launch

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта