Autor | Zpráva | ||
---|---|---|---|
Amento Profil * |
#1 · Zasláno: 21. 2. 2010, 09:27:49
Ahoj,
mam tento for cyklus for () { vypis('ahoj', function() { // dobrý můžeš pokračovat v cyklu }); } a tuto funkci function vypis(msg, callback) { if(alert(msg)) { callback(); } } a jde mi oto, aby v momentě, kdy se zavolá callback cyklus pokračoval, jinak čekal. vypis('ahoj', function() { // dobrý můžeš pokračovat v cyklu }); Jak na to? Díky. |
||
Baggz Profil |
#2 · Zasláno: 21. 2. 2010, 14:35:25
|
||
Chamurappi Profil |
#3 · Zasláno: 21. 2. 2010, 16:58:34
Reaguji na Amenta:
„aby v momentě, kdy se zavolá callback cyklus pokračoval, jinak čekal“ Na co by měl čekat? Jak se projevuje to, že (podle tebe) nečeká? Reaguji na Baggza: Nemyslím si, že se ptá na tohle. |
||
Časová prodleva: 13 dní
|
|||
Witiko Profil |
#4 · Zasláno: 6. 3. 2010, 16:13:52 · Upravil/a: Witiko
Amento: Pokud ti jde o vytvoření samostatného vlákna (a to v uvozovkách, protože javascript je ze své přirozenosti singlethreaded), tak jediné co ti asi zbyde bude použití setTimeout. Opakuji, že javascript nedokáže pracovat ve více vláknech najednou a pokud je script zaneprázdněný, tak funkci přiřazenou k setTimeout provede až po dokončení cyklu. (http://ejohn.org/blog/how-javascript-timers-work/)
for (/* tady to doufám nezůstane do budoucna prázdné */) { window.setTimeout(function() { vypis('ahoj', function() {}); },1); } Jinak věc číslo 2: Jak si má člověk vysvětlit if(alert(msg)) podmínku? Funkce alert nenavrací žádnou hodnotu kromě undefined, která není považovaná za true a k zavolání funkce callback tedy nikdy nedojde, protože podmínka nikdy nebude splněna. Pokud jde o zavolání callback po odkliknutí okna alertu, tak musím zklamat - alert se sice chová jako nemodální okno, nicméně není možné prakticky jakkoliv detekovat (napadá mě možnost zjištění pomocí testování souřadnic myši, ale to je hodně šílené) zda uživatel okno zavřel. Některé prohlížeče nepokračují v kódu dokud uživatel alert okno nezavřeč, ostatní v kódu pokračují. Pokud vadí, doporučuji vlastní UI, spíš bych ale zapřemýšlel, jestli je skutečně záměrem zasypat uživatele hromadou alertů na odklikání cyklem, jestli by nebylo lepší data nashromáždit v proměnné a poté uživateli předat. |
||
Časová prodleva: 14 let
|
0