every and each unmounting...
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 25/100
Direção de pesquisa
Comece pelo comportamento de AutoUnmount de Observable e pelas classes Browser::Interval e Browser::Delay mencionadas na issue. Revise como every, each, every! e each! lidam atualmente com unmounting e, em seguida, determine quais das semânticas propostas e qual comportamento de override devem ser implementados. Está concluído quando o comportamento escolhido do ciclo de vida do timer for consistente e estiver coberto pelos testes relevantes do projeto.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
every makes sense, as the timer will keep running for ever. But should any each timer that is still running when things unmount also be unmounted? Note that Observable includes AutoUnmount, so any store will get this behavior as well!
Then, on the other hand, there is an each! and every! method (they don't auto start, so you have to say each!(x).start. Neither of these timers IS auto-unmounted.
Couple of options:
- just take after out of unmount, and forgettabout it.
- 1 + provide a remove_after_timers method callable in Observable
- leave it, and if you want a timer that isn't unmounted use the bang variation.
- provide auto_unmount(x) attached to the timers so you say:
after(12).auto_unmount(true)orevery(12).auto_unmount(false)to override the defaults.
Currently I think its best to make both every and every! behave the same, and make each and each! not autounmount, and then add the auto_unmount method to the Browser::Interval and Browser::Delay classes.
attr_accessor :mount_point
def auto_unmount(yes)
# warning message and return if mount_point is nil
if yes
AutoUnmount.objects_to_unmount[mount_point] << self
else
AutoUnmount.objects_to_unmount[mount_point].delete(self)
end
end
alias unmount abort
now all the automounter does is set mount_point
def every!(*args, &block)
super.tap do |id|
next id if unmounted?
id.mount_point = self
id.auto_unmount(true)
end
end
def after!(*args, &block)
super.tap { |id| id.mount_point = self unless unmounted? }
end
- Linguagem predominante
- JavaScript
- Estrelas
- 538
- Forks
- 41
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de hyperstack-org/hyperstack
-
expose_as_operations method Abertaenhancement needs doc
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
hyperstack-org/hyperstack#359 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
hyperstack-org/hyperstack#267 ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
hyperstack-org/hyperstack#457 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
hyperstack-org/hyperstack#456 ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 15/100
hyperstack-org/hyperstack#455 · 2 comentários ·
Todas as issues de hyperstack-org/hyperstack
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
palladius/rails8-app-on-gcp#145 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
dotenvx/dotenv-vscode#139 ·
-
test-change-proposal
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
web-platform-tests/interop#1455 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
corsairdev/corsair#1764 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100