Potreboval by som nazor plebsu. Premyslam, ze na stare kolena skusim predsa len nejaky marketing. Idea je tvorit idealne vtipne videa, ktore prezentuju firmu a zaroven zanechaju v divakovi nie az tak reklamny dojem, ale skor si ten pribehovy. Prva cast je o klasickom vikendovom utoku, ktory sa bezne deje, cize utocnik najde otvoreny deravy Windows server, pocka si na vikend a v piatok v noci zacne so sifrovanim jeho obsahu. Vacsinou este v sobotu sifrovanie bezi, ale prvi zamestnanci prichadzaju do prace az v pondelok, ked najdu nepouzitelne programy, databazy, zrazu nic nefunguje. Dnes uz nie je je vacsinou cesta ako data desifrovat, takze bud sa zplati vydieracovi (neodporucam), alebo sa obnovia data a cely server zo zalohy. Samozrejme s tym, ze sa aj uzavrie diera, ktorou sa utocnik dostal dnu.
Přejít na článek
Zkus tohle:
Díky, a má tam být
var self = this.
nebo
var self = this;
s tím středníkem na konci to funguje, ale proč nefunguje přímo this?
Se středníkem.
Nefunguje to, protože this uvnitř funkce se vztahuje na tu funkci.
Díky, this které patří funkci? this se přeci používá jen ve třídách, ne?
Ano, ale v setTimeout mas (bezejmennou) funkci, ktera zadne tride nepatri (neni jeji metodou) a tak zadne this pri svem volani nedostava. this neni skutecna prommena, neni nikde deklarovana, nikde se ji neprirazuje hodnota - je to jen jazykova konstrukce. Tim, ze te funkci das skutecnou promennou s prirazenou hodnotou tohle obejdes :)
this se v JS používal dávno před tím, než zavedli třídy (rok 2015).
Jo, patří tam středník, blbě jsem to napsal.
Přímo to nefunguje kvůli rozdílnýmu scope.
Ještě by ti mohlo fungovat tohle:
Díky ale PURE JS tuto funkci nezná :(
bind(this);
Ale zná. Je je to potřeba napsat na správný místo.
Ha! Díky za opravu; já to moc nepoužívám, tak jsem se netrefil.
Díky.
Ta funkce stejně funguje nějak jinak než bych chtěl, pokud zadám
jako by ta funkce nečekala až se provede, jde to nějak nastavit? Až se provede celý kód uvnitř setTimeout() tak pokračuj? Díky
Ale funguje to tak, jak to fungovat má. Pomocí setTimeout() nastavíš, za jaký čas se má funkce vykonat a program pokračuje dál. Hledáš asi něco jako delay(), ale to v JS nenajdeš.
Zpoždění můžeš simulovat velkou smyčkou, prázdnej for cyklus, ale ani náhodou neodhadneš kolik průchodů je potřeba na 1 s. Na každým PC to bude jinak, i na stejným PC to bude jinak v závislost na vytížení procesoru.
Našly by se i jiný způsoby:
https://stackoverflow.com/questions/33289726/combination-of-async-function-await-settimeout