Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

isModuleReady() com retorno incorreto #855

Closed
GuilhermeZety opened this issue Jul 4, 2023 · 4 comments
Closed

isModuleReady() com retorno incorreto #855

GuilhermeZety opened this issue Jul 4, 2023 · 4 comments
Labels
new New issue request attention

Comments

@GuilhermeZety
Copy link

GuilhermeZety commented Jul 4, 2023

Ao chamar o
Modular.isModuleReady<>()
o retorno declarado como um void.

Captura de Tela 2023-07-04 às 15 07 00

porém o que deveria ser retornado neste caso é um bool com a info se está pronto ou não, como o próprio usecase ja retorna;

Captura de Tela 2023-07-04 às 15 07 24

consegui retornar com um helper redefinindo o retorno da função, mas creio que ja deveria vir como padrão

@GuilhermeZety GuilhermeZety added the new New issue request attention label Jul 4, 2023
@edugemini
Copy link
Contributor

Olá @GuilhermeZety,
Modular.isModuleReady não tem a função de retornar se um módulo está pronto ou não. Ele é um future que aguarda até o módulo estar pronto. Seu uso é assim:

...
await Modular.isModuleReady<SeuModulo>();
// o que fazer depois do módulo estar pronto.
... 

Veja nessa parte da Doc: https://modular.flutterando.com.br/docs/flutter_modular/dependency-injection#asyncbind

@GuilhermeZety
Copy link
Author

GuilhermeZety commented Jul 4, 2023

Opa!

Então ele aguarda até o módulo estar pronto! okay!

Mas e se eu quiser validar se um módulo está inicializado ou não?

Pelos meus testes ele funciona pra isto também, visto que ele valida se o módulo ja está pronto...

por essa explicação, caso o módulo não estivesse inicializado e ele ficasse esperando o módulo estar pronto ficaria esperando até cair no timeout(se tiver).

Pelos meus testes caso eu passe um módulo que não foi inicializado o usecase dele retorna direto um Right(false)

Não acho que seria muito problemático mudar este retorno para boolean, e retornar justo o que o usecase está retornando de fato!

Ou talvez seria interessante mudar o nome da função para awaitModuleLoad() ou algo do tipo, pois o comum de algo como isAlgo() seria retornar um boolean

@edugemini
Copy link
Contributor

@GuilhermeZety, não é possível ele retornar "diretamente" um true ou false, pois ele é um future e você teria que usar o await de qualquer forma. E se ele retornasse um Future<false>, não seria possível depois que o módulo tivesse pronto retornar um Future<true>, pois o retorno é único.
Acredito que o que você deseja seja uma nova função síncrona para saber se um módulo já está pronto, só não consigo saber o que faria com esta informação.
PS.: Concordo com você em relação ao nome do método não ser muito intuitivo.

@jacobaraujo7
Copy link
Contributor

Registro de Binds assincronos foram removidos por causarem problemas demais.
É melhor criar uma classe que englobe isso.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new New issue request attention
Projects
None yet
Development

No branches or pull requests

3 participants