{"id":1720730,"user_name":null,"score":1,"text":"Najpierw wykona si\u0119 kod\n```\nlet a = 0,\n  b = 10;\na = b;\n```\n\nPo nim a b\u0119dzie r\u00f3wne 10\n\np\u00f3\u017aniej web API 2 kawa\u0142ki kodu z 2 wywo\u0142a\u0144 setTiemout po kolei do Event Loop\n```\n  a++;\n```\ni\n```\n  console.log(\"2 Attempt: \" + a);\n```\nPo nim a b\u0119dzie powi\u0119kszone o 1\nPo nim jest efekt na konsoli: 2 attempt 11\n\n*Nie wiem, czy og\u00f3lnie okre\u015blone API zagwarantuje sekwencyjne wej\u015bcie i wyj\u015bcie event\u00f3w. Najparwdopodobniej tak, pewno\u015bci nie mam czy zawsze, czy jakie\u015b API nie b\u0119dzie mie\u0107 innej implementacji, bo chyba nie jest to zachowanie \u015bci\u015ble okre\u015blone.*\nJakby mnie kto\u015b o ten konkretnie przyk\u0142ad pyta\u0142, to tak bym odpowiedzia\u0142: \"nie mam 100% pewno\u015bci, nie wiem, zg\u0142aszam w\u0105tpliwo\u015b\u0107 do wyja\u015bnienia ;)\".\n\nNa sam koniec \"druga fala timeout\u00f3w\" do WebAPI i jeden kawa\u0142ek kodu z najbardziej zagnie\u017cd\u017conego setTimeout do Event Loop\n```\n    a++;\n    console.log(\"1 Attempt: \" + a);\n\n```\nA ponownie zwi\u0119kszone o 1 i na konsoli: 1 Attempt: 12\n\n\nTLDR;\n\n@kacor11: wrzuci\u0142 modelowy \"film z przypis\u00f3w\".\nZasada jest: ca\u0142y kod jest wykonywany, a setTimeout lec\u0105 na p\u00f3\u017aniej do obs\u0142ugi\/wywo\u0142ania przez API i kiedy przyjdzie ich czas l\u0105duj\u0105 w kolejce do wykonania: ka\u017cdy fragment kodu jako osobna paczka, po kolei paczka po paczce brana z event queue i wykonywana.\n\nGdy w takiej paczce b\u0119dzie setTimeout to trafia on normalnie do API, czeka na sw\u00f3j czas, leci do event loop i stamt\u0105d po dequeue jest wykonywany.\n\n--------------------------\n\nZadanie\/pytanie mia\u0142o pokaza\u0107 czy wiesz o czym mowa na wy\u017cej wspomnianym filmie a nie o callback hell, Promise, async\/await","edit_count":5,"is_voted":null,"is_accepted":null,"is_subscribed":null,"user_id":100968,"deleter_name":null,"delete_reason":null,"orderingScore":1,"created_at":"2020-11-03T21:29:50+01:00","updated_at":"2020-11-03T21:40:38+01:00","deleted_at":null,"user":{"id":100968,"name":"BraVolt","is_online":false,"location":"Warszawa","allow_sig":1,"allow_count":1,"allow_smilies":0,"posts":2918,"visited_at":"2021-05-14T11:41:50.000000Z","created_at":"2019-05-29T17:05:59.000000Z","initials":"BV","is_verified":false,"is_deleted":false,"is_incognito":false,"is_blocked":false,"is_blocked_perm":false,"deleted_at":null,"photo":"\/uploads\/photo\/5f\/5f65f9aad9114.gif","sig":"\"Kiedy wiedzie\u0107 czy zacz\u0105\u0107 nauke Springa? bo w czystej Javie to nic ciekawego nie zrobie chyba\"<br \/>\nEin Volk, ein Reich, ein Kwa-Kwa ***** ***\n"},"html":"<p>Najpierw wykona si\u0119 kod<\/p>\n<div class=\"markdown-code\"><div class=\"copy-button\">Kopiuj<\/div><pre><code>let a = 0,\n  b = 10;\na = b;\n<\/code><\/pre><\/div>\n<p>Po nim a b\u0119dzie r\u00f3wne 10<\/p>\n<p>p\u00f3\u017aniej web API 2 kawa\u0142ki kodu z 2 wywo\u0142a\u0144 setTiemout po kolei do Event Loop<\/p>\n<div class=\"markdown-code\"><div class=\"copy-button\">Kopiuj<\/div><pre><code>  a++;\n<\/code><\/pre><\/div>\n<p>i<\/p>\n<div class=\"markdown-code\"><div class=\"copy-button\">Kopiuj<\/div><pre><code>  console.log(\"2 Attempt: \" + a);\n<\/code><\/pre><\/div>\n<p>Po nim a b\u0119dzie powi\u0119kszone o 1<br \/>\nPo nim jest efekt na konsoli: 2 attempt 11<\/p>\n<p><em>Nie wiem, czy og\u00f3lnie okre\u015blone API zagwarantuje sekwencyjne wej\u015bcie i wyj\u015bcie event\u00f3w. Najparwdopodobniej tak, pewno\u015bci nie mam czy zawsze, czy jakie\u015b API nie b\u0119dzie mie\u0107 innej implementacji, bo chyba nie jest to zachowanie \u015bci\u015ble okre\u015blone.<\/em><br \/>\nJakby mnie kto\u015b o ten konkretnie przyk\u0142ad pyta\u0142, to tak bym odpowiedzia\u0142: \"nie mam 100% pewno\u015bci, nie wiem, zg\u0142aszam w\u0105tpliwo\u015b\u0107 do wyja\u015bnienia ;)\".<\/p>\n<p>Na sam koniec \"druga fala timeout\u00f3w\" do WebAPI i jeden kawa\u0142ek kodu z najbardziej zagnie\u017cd\u017conego setTimeout do Event Loop<\/p>\n<div class=\"markdown-code\"><div class=\"copy-button\">Kopiuj<\/div><pre><code>    a++;\n    console.log(\"1 Attempt: \" + a);\n\n<\/code><\/pre><\/div>\n<p>A ponownie zwi\u0119kszone o 1 i na konsoli: 1 Attempt: 12<\/p>\n<p>TLDR;<\/p>\n<p><a class=\"mention\" data-user-id=\"110052\" href=\"http:\/\/static.175.128.202.116.clients.your-server.de\/Profile\/110052\" rel=\"nofollow\" target=\"_blank\">@kacor11<\/a>: wrzuci\u0142 modelowy \"film z przypis\u00f3w\".<br \/>\nZasada jest: ca\u0142y kod jest wykonywany, a setTimeout lec\u0105 na p\u00f3\u017aniej do obs\u0142ugi\/wywo\u0142ania przez API i kiedy przyjdzie ich czas l\u0105duj\u0105 w kolejce do wykonania: ka\u017cdy fragment kodu jako osobna paczka, po kolei paczka po paczce brana z event queue i wykonywana.<\/p>\n<p>Gdy w takiej paczce b\u0119dzie setTimeout to trafia on normalnie do API, czeka na sw\u00f3j czas, leci do event loop i stamt\u0105d po dequeue jest wykonywany.<\/p>\n<hr \/>\n<p>Zadanie\/pytanie mia\u0142o pokaza\u0107 czy wiesz o czym mowa na wy\u017cej wspomnianym filmie a nie o callback hell, Promise, async\/await<\/p>\n","url":"http:\/\/static.175.128.202.116.clients.your-server.de\/Forum\/JavaScript\/345642-problem_z_callback_hell?p=1720730#id1720730","is_locked":false,"editor":{"id":100968,"name":"BraVolt","is_online":false,"location":"Warszawa","allow_sig":1,"allow_count":1,"allow_smilies":0,"posts":2918,"visited_at":"2021-05-14T11:41:50.000000Z","created_at":"2019-05-29T17:05:59.000000Z","initials":"BV","is_verified":false,"is_deleted":false,"is_incognito":false,"is_blocked":false,"is_blocked_perm":false,"deleted_at":null,"photo":"\/uploads\/photo\/5f\/5f65f9aad9114.gif","sig":"\"Kiedy wiedzie\u0107 czy zacz\u0105\u0107 nauke Springa? bo w czystej Javie to nic ciekawego nie zrobie chyba\"<br \/>\nEin Volk, ein Reich, ein Kwa-Kwa ***** ***\n"},"permissions":{"write":false,"delete":false,"update":false,"accept":false},"moderatorPermissions":{"delete":false,"update":false,"accept":false,"merge":false,"sticky":false,"admAccess":false},"comments":[],"comments_count":0,"assets":[],"metadata":"eyJpdiI6IkcvU3dMNmt1NmI0bkdNbFNCMmxGM1E9PSIsInZhbHVlIjoidEtXRVkwd1hEOTlPWlVYS0x3TzRzb28yYmxqRUxxWjE3bkkyQWlLU2ZQU2FUU3FJbGt1d2IvZU42b25Cbjd5c25SU3dpajNKRTRtUFpLeUZqamFmUk1QZ09YVzdGOTZaTDd2a2pPdjRyYnhBTkx0Q2xYVUduQWFyaVhqd3hrSzkiLCJtYWMiOiI0OTUyNmNkMTU1N2QzY2YwYzhmMmIzY2Q3MDAzMjE0MzRkMTJmNDU2NTk4MGZlYjkzMzY4MTgwODJhYTEwMjExIiwidGFnIjoiIn0=","has_review":false,"review_style":"info","parentPostId":null,"childrenFolded":false,"type":"regular","highlighted":false}