Vyřešeno: settimeout

Vše, co potřebujete vědět o setTimeout v JavaScriptu

V JavaScriptu jsou časovací funkce jako např setTimeout hrají klíčovou roli při řízení toku provádění kódu. Tato výkonná funkce vám umožňuje zpozdit provádění vybrané části kódu, což vede k nádherné symfonii asynchronního chování ve vašich aplikacích.

Pochopení použití a manipulace setTimeout také předvádí eleganci a efektivitu JavaScriptu, což ilustruje jeho pozici jednoho z nejrozšířenějších jazyků ve vývoji webových aplikací. Pojďme se podrobně podívat na to, jak funguje setTimeout a jak jej správně aplikovat na váš kód.

Vše o setTimeout v JavaScriptu


function demoFunction(){
console.log('This is a demo function');
}
setTimeout(demoFunction,3000);

V tomto příkladu jsme vytvořili funkci s názvem demoFunkce který zaznamená jednoduchý řetězec. Metoda setTimeout pak tuto funkci vyvolá po prodlevě 3000 milisekund, neboli 3 sekundy.

První argument přešel na setTimeout je funkce, která má být provedena. Druhým argumentem je doba zpoždění v milisekundách. Všimněte si, že toto jsou základní parametry a další mohou být přidány v závislosti na složitosti vaší funkce.

Pamatuj si, setTimeout nezastaví provádění následujícího kódu. Proto se dokonale hodí pro operace, které nevyžadují okamžité provedení, jako jsou volání API nebo zpracování událostí.

Ponořte se do hloubky: Zásobník, webová rozhraní API a fronta

Abychom dále pochopili jak setTimeout chová, znalost běhového prostředí JavaScriptu je nezbytná. Akce jsou v zákulisí rozděleny do tří částí – zásobník, webová rozhraní API a fronta.


console.log(‘Code Start’);
setTimeout(function(){
console.log('After timeout1');
}, 1000);
setTimeout(function(){
console.log('After timeout2');
}, 0);
console.log(‘Code End’);

Tento úryvek dokonale osvětluje podstatu prostředí JavaScriptu. Očekávali byste, že „After timeout2“ se vytiskne jako poslední kvůli setTimeoutu 0 milisekund. Vytiskne se však jako třetí po „Konec kódu“. Je to proto, že setTimeout přesune úlohy do webového rozhraní API, které je poté po uplynutí přiděleného času odešle zpět do fronty. Mezitím se hlavní vlákno (Stack) stále spouští. Jakmile je zásobník prázdný, úkoly z fronty se přesunou zpět do zásobníku k provedení.

Upozornění a poznámky

  • setTimeout nezaručuje přesné zpoždění. Zajistí pouze, že funkce nebude spuštěna před dosažením stanoveného času.
  • Vnořené nebo dlouhotrvající funkce mohou blokovat frontu a vytvářet další zpoždění.
  • Dejte si pozor na klíčové slovo 'toto' ve funkci zpětného volání. Neodkazuje na objekt, kde je deklarován setTimeout. Chcete-li to vyřešit, použijte funkci šipky nebo svažte požadovaný objekt na „toto“.

setTimeout v JavaScriptu je vynikajícím nástrojem při pečlivém používání. Nechává náš program odpočinout a otevírá dveře pro souběžné zpracování a neblokující operace. Pochopení jeho chování, rozsahu a omezení může výrazně zvýšit výkon vašich webových aplikací.

Související příspěvky:

Zanechat komentář