Aplikacja odliczająca czas

Aplikacja odliczająca czas
P1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 640
0

Mam pytanie. Jaki commit mogę napisać odnośnie tej funkcji?

Kopiuj

function currentDate() {
	const currentlyDate = setInterval(getDate, 1000);
	return currentlyDate;
}

Napisanie funkcji odliczającej pozostały czas? Bo commituje sobie każdą funkcje i zastanawiam się nad commitem do tej

Silv
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
1

Generalnie chyba muszę najpierw powiedzieć, że nie wszystko w tej funkcji jest dobrze napisane (choć pewnie działa zgodnie z Twoim oczekiwaniem):

  1. Funkcja setInterval nie zwraca daty, tylko tzw. intervalID. Zobacz tutaj -> https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval Więc nie ma sensu zwracanie z tej funkcji tego, co zwraca setInterval.
  2. Poza tym funkcja powinna nazywać się raczej startCounter, bo to właśnie robi: uruchamia licznik.

Przechodząc do pytania o commit: jeśli twoje inne commity mają formę "Napisanie XYZ", to tu też możesz podobnie napisać: Napisanie funkcji uruchamiającej licznik.

P1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 640
0

Ok. To co powinienem konkretnie zmienić w tej funkcji według Ciebie?

Silv
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
1
  1. Usunąć linijkę z return.
  2. Zmienić nazwę zmiennej z currentlyDate na intervalID.
  3. Zmienić nazwę funkcji z currentDate na startCounter.
P1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 640
0

Jasne. I tyle. Bo jeśli coś jeszcze to powiedz bo się ucz i chce się nauczyć

Silv
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
1
  1. Jeśli ogólnie chodzi o Twój kod, to zmieniłbym nazwę funkcji getDate na updateCounter. Bo funkcja getDate właśnie aktualizuje licznik. Ogólnie w programowaniu nazwy funkcji powinny dokładnie odpowiadać temu, co owe funkcje robią. Twój program nie jest duży, ale są systemy, które mają tysiące funkcji. Tam muszą one być naprawdę dobrze nazwane. ;)
  2. Druga sprawa, jaką widzę, to to, że funkcja currentDate mogłaby być wywoływana dopiero po załadowaniu wszystkich elementów drzewa DOM. W Twoim przypadku to nie robi różnicy, czy tak jest, czy nie jest (bo wszystko działa). Ogólnie są jednak przypadki, kiedy to robi różnicę. Kodu już nie zmieniaj, ale możesz o tym poczytać – na przykład tutaj:

PS Hm, nie jestem pewien, czy JS Fiddle już nie korzysta ze zdarzenia load albo DOMContentLoaded. Kiedyś, pamiętam, jakoś to można było zobaczyć ale teraz nie widzę. W każdym razie swojego kodu zmieniać nie musisz. :) To tak mówię na wszelki wypadek.

P1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 640
0

Wiesz co. Mam jeszcze zasadniczo pytanie. Chodzi o to że gdy na liczniku np. w sekundach mam 6 to nie chce wyświetlać "gołej" szóstki tylko 06. I tak dla wszystkich liczb poniżej dzisięciu. Więc napisałem sobie przykładową funkcje

Kopiuj

function getTrueNumber(secondsTime) {
	if (secondsTime < 10) {
		return '0' + secondsTime;
	}
}

która mi to realizuje lecz nie odlicza mi od 59 tylko od 10 i potem dostaje undefined. Pytanie, co powinienem zrobić a by to zadziałało. Stworzyć zmienną która przechowuje zero a następnie sprawdzać liczbe sekund, minut oraz godzin które mi się wyświetlą poniżej dziesięciu i za każdym razem wywoływać tą funkcje. Mój obecny kod https://jsfiddle.net/hs9ekaf2/

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.