├── .gitignore ├── 2-difference-between-sync-and-async-actions ├── lets-fix-our-example │ ├── number3.txt │ └── print-4-numbers.js └── typical-example-of-an-asynchronous-action │ ├── normal-print-4-numbers.js │ ├── number3.txt │ └── print-4-numbers.js ├── 3-callbacks ├── callback-hell │ └── example.js ├── callbacks-are-not-always-asynchronous │ └── example.js ├── callbacks-lack-readability │ └── example.js ├── how-to-handle-errors-in-asynchronous-code │ ├── error-first-callbacks.js │ └── try-catch.js └── what-is-callback │ └── index.js ├── 4-testing-callbacks ├── calculate-square.js ├── package-lock.json ├── package.json └── test │ └── calculate-square.test.js ├── 5-promises ├── chaining-promises │ └── index.js ├── executing-promises-in-parallel-promise-all │ └── index.js ├── final-states-of-the-promise │ └── examples.js ├── handling-promise-rejections │ └── example.js ├── how-promise-all-handles-rejections │ └── index.js ├── how-to-avoid-callback-hell │ ├── avoid-callback-hell.js │ └── callback-hell.js ├── how-to-create-a-promise │ ├── rejected-promise.js │ └── resolved-promise.js ├── how-to-use-a-promise │ └── example.js ├── implementing-promise-all-from-scratch │ └── index.js ├── implementing-promise-allsettled-from-scratch │ └── index.js ├── implementing-promise-any-from-scratch │ └── index.js ├── implementing-promise-race-from-scratch │ └── index.js ├── making-http-requests-using-fetch-api │ └── example.js ├── promise-race-weather-api │ ├── fixtures │ │ ├── openweathermap.json │ │ └── weatherstack.json │ ├── weather-api.html │ └── weather-api.js ├── promise-resolve-and-promise-reject │ └── index.js ├── promisify-any-function │ ├── capitalize.js │ └── database │ │ ├── create-database.sql │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── users-callbacks.js │ │ └── users-promises.js ├── rewriting-calculate-square-with-promises │ └── index.js └── which-promise-is-faster-promise-race │ └── index.js ├── 6-testing-promises ├── making-several-assertions │ ├── package-lock.json │ ├── package.json │ ├── src │ │ └── calculate-square.js │ └── test │ │ └── calculate-square.test.js ├── timeouts-while-testing │ ├── package-lock.json │ ├── package.json │ ├── src │ │ └── calculate-square.js │ └── test │ │ └── calculate-square.test.js └── writing-tests │ ├── package-lock.json │ ├── package.json │ ├── src │ └── calculate-square.js │ └── test │ └── calculate-square.test.js ├── 7-async-await ├── async-function │ └── example.js ├── await-keyword │ ├── get-specific-number.js │ └── random-dog-image.js ├── handling-errors-async-await │ └── example.js └── sequential-vs-parallel-execution-async-await │ └── index.js └── 8-advanced-event-loop ├── animations ├── animations-after.html └── animations-before.html ├── example-with-promise-and-set-timeout ├── promises.js ├── set-timeout-promise.js └── set-timeout.js └── long-tasks ├── after.html ├── before.html └── queue-microtask.html /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /2-difference-between-sync-and-async-actions/lets-fix-our-example/number3.txt: -------------------------------------------------------------------------------- 1 | 3 -------------------------------------------------------------------------------- /2-difference-between-sync-and-async-actions/lets-fix-our-example/print-4-numbers.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/2-difference-between-sync-and-async-actions/lets-fix-our-example/print-4-numbers.js -------------------------------------------------------------------------------- /2-difference-between-sync-and-async-actions/typical-example-of-an-asynchronous-action/normal-print-4-numbers.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/2-difference-between-sync-and-async-actions/typical-example-of-an-asynchronous-action/normal-print-4-numbers.js -------------------------------------------------------------------------------- /2-difference-between-sync-and-async-actions/typical-example-of-an-asynchronous-action/number3.txt: -------------------------------------------------------------------------------- 1 | 3 -------------------------------------------------------------------------------- /2-difference-between-sync-and-async-actions/typical-example-of-an-asynchronous-action/print-4-numbers.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/2-difference-between-sync-and-async-actions/typical-example-of-an-asynchronous-action/print-4-numbers.js -------------------------------------------------------------------------------- /3-callbacks/callback-hell/example.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/3-callbacks/callback-hell/example.js -------------------------------------------------------------------------------- /3-callbacks/callbacks-are-not-always-asynchronous/example.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/3-callbacks/callbacks-are-not-always-asynchronous/example.js -------------------------------------------------------------------------------- /3-callbacks/callbacks-lack-readability/example.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/3-callbacks/callbacks-lack-readability/example.js -------------------------------------------------------------------------------- /3-callbacks/how-to-handle-errors-in-asynchronous-code/error-first-callbacks.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/3-callbacks/how-to-handle-errors-in-asynchronous-code/error-first-callbacks.js -------------------------------------------------------------------------------- /3-callbacks/how-to-handle-errors-in-asynchronous-code/try-catch.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/3-callbacks/how-to-handle-errors-in-asynchronous-code/try-catch.js -------------------------------------------------------------------------------- /3-callbacks/what-is-callback/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/3-callbacks/what-is-callback/index.js -------------------------------------------------------------------------------- /4-testing-callbacks/calculate-square.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/4-testing-callbacks/calculate-square.js -------------------------------------------------------------------------------- /4-testing-callbacks/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/4-testing-callbacks/package-lock.json -------------------------------------------------------------------------------- /4-testing-callbacks/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/4-testing-callbacks/package.json -------------------------------------------------------------------------------- /4-testing-callbacks/test/calculate-square.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/4-testing-callbacks/test/calculate-square.test.js -------------------------------------------------------------------------------- /5-promises/chaining-promises/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/chaining-promises/index.js -------------------------------------------------------------------------------- /5-promises/executing-promises-in-parallel-promise-all/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/executing-promises-in-parallel-promise-all/index.js -------------------------------------------------------------------------------- /5-promises/final-states-of-the-promise/examples.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/final-states-of-the-promise/examples.js -------------------------------------------------------------------------------- /5-promises/handling-promise-rejections/example.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/handling-promise-rejections/example.js -------------------------------------------------------------------------------- /5-promises/how-promise-all-handles-rejections/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/how-promise-all-handles-rejections/index.js -------------------------------------------------------------------------------- /5-promises/how-to-avoid-callback-hell/avoid-callback-hell.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/how-to-avoid-callback-hell/avoid-callback-hell.js -------------------------------------------------------------------------------- /5-promises/how-to-avoid-callback-hell/callback-hell.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/how-to-avoid-callback-hell/callback-hell.js -------------------------------------------------------------------------------- /5-promises/how-to-create-a-promise/rejected-promise.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/how-to-create-a-promise/rejected-promise.js -------------------------------------------------------------------------------- /5-promises/how-to-create-a-promise/resolved-promise.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/how-to-create-a-promise/resolved-promise.js -------------------------------------------------------------------------------- /5-promises/how-to-use-a-promise/example.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/how-to-use-a-promise/example.js -------------------------------------------------------------------------------- /5-promises/implementing-promise-all-from-scratch/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/implementing-promise-all-from-scratch/index.js -------------------------------------------------------------------------------- /5-promises/implementing-promise-allsettled-from-scratch/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/implementing-promise-allsettled-from-scratch/index.js -------------------------------------------------------------------------------- /5-promises/implementing-promise-any-from-scratch/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/implementing-promise-any-from-scratch/index.js -------------------------------------------------------------------------------- /5-promises/implementing-promise-race-from-scratch/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/implementing-promise-race-from-scratch/index.js -------------------------------------------------------------------------------- /5-promises/making-http-requests-using-fetch-api/example.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/making-http-requests-using-fetch-api/example.js -------------------------------------------------------------------------------- /5-promises/promise-race-weather-api/fixtures/openweathermap.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/promise-race-weather-api/fixtures/openweathermap.json -------------------------------------------------------------------------------- /5-promises/promise-race-weather-api/fixtures/weatherstack.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/promise-race-weather-api/fixtures/weatherstack.json -------------------------------------------------------------------------------- /5-promises/promise-race-weather-api/weather-api.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/promise-race-weather-api/weather-api.html -------------------------------------------------------------------------------- /5-promises/promise-race-weather-api/weather-api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/promise-race-weather-api/weather-api.js -------------------------------------------------------------------------------- /5-promises/promise-resolve-and-promise-reject/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/promise-resolve-and-promise-reject/index.js -------------------------------------------------------------------------------- /5-promises/promisify-any-function/capitalize.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/promisify-any-function/capitalize.js -------------------------------------------------------------------------------- /5-promises/promisify-any-function/database/create-database.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/promisify-any-function/database/create-database.sql -------------------------------------------------------------------------------- /5-promises/promisify-any-function/database/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/promisify-any-function/database/package-lock.json -------------------------------------------------------------------------------- /5-promises/promisify-any-function/database/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/promisify-any-function/database/package.json -------------------------------------------------------------------------------- /5-promises/promisify-any-function/database/users-callbacks.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/promisify-any-function/database/users-callbacks.js -------------------------------------------------------------------------------- /5-promises/promisify-any-function/database/users-promises.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/promisify-any-function/database/users-promises.js -------------------------------------------------------------------------------- /5-promises/rewriting-calculate-square-with-promises/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/rewriting-calculate-square-with-promises/index.js -------------------------------------------------------------------------------- /5-promises/which-promise-is-faster-promise-race/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/5-promises/which-promise-is-faster-promise-race/index.js -------------------------------------------------------------------------------- /6-testing-promises/making-several-assertions/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/6-testing-promises/making-several-assertions/package-lock.json -------------------------------------------------------------------------------- /6-testing-promises/making-several-assertions/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/6-testing-promises/making-several-assertions/package.json -------------------------------------------------------------------------------- /6-testing-promises/making-several-assertions/src/calculate-square.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/6-testing-promises/making-several-assertions/src/calculate-square.js -------------------------------------------------------------------------------- /6-testing-promises/making-several-assertions/test/calculate-square.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/6-testing-promises/making-several-assertions/test/calculate-square.test.js -------------------------------------------------------------------------------- /6-testing-promises/timeouts-while-testing/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/6-testing-promises/timeouts-while-testing/package-lock.json -------------------------------------------------------------------------------- /6-testing-promises/timeouts-while-testing/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/6-testing-promises/timeouts-while-testing/package.json -------------------------------------------------------------------------------- /6-testing-promises/timeouts-while-testing/src/calculate-square.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/6-testing-promises/timeouts-while-testing/src/calculate-square.js -------------------------------------------------------------------------------- /6-testing-promises/timeouts-while-testing/test/calculate-square.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/6-testing-promises/timeouts-while-testing/test/calculate-square.test.js -------------------------------------------------------------------------------- /6-testing-promises/writing-tests/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/6-testing-promises/writing-tests/package-lock.json -------------------------------------------------------------------------------- /6-testing-promises/writing-tests/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/6-testing-promises/writing-tests/package.json -------------------------------------------------------------------------------- /6-testing-promises/writing-tests/src/calculate-square.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/6-testing-promises/writing-tests/src/calculate-square.js -------------------------------------------------------------------------------- /6-testing-promises/writing-tests/test/calculate-square.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/6-testing-promises/writing-tests/test/calculate-square.test.js -------------------------------------------------------------------------------- /7-async-await/async-function/example.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/7-async-await/async-function/example.js -------------------------------------------------------------------------------- /7-async-await/await-keyword/get-specific-number.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/7-async-await/await-keyword/get-specific-number.js -------------------------------------------------------------------------------- /7-async-await/await-keyword/random-dog-image.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/7-async-await/await-keyword/random-dog-image.js -------------------------------------------------------------------------------- /7-async-await/handling-errors-async-await/example.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/7-async-await/handling-errors-async-await/example.js -------------------------------------------------------------------------------- /7-async-await/sequential-vs-parallel-execution-async-await/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/7-async-await/sequential-vs-parallel-execution-async-await/index.js -------------------------------------------------------------------------------- /8-advanced-event-loop/animations/animations-after.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/8-advanced-event-loop/animations/animations-after.html -------------------------------------------------------------------------------- /8-advanced-event-loop/animations/animations-before.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/8-advanced-event-loop/animations/animations-before.html -------------------------------------------------------------------------------- /8-advanced-event-loop/example-with-promise-and-set-timeout/promises.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/8-advanced-event-loop/example-with-promise-and-set-timeout/promises.js -------------------------------------------------------------------------------- /8-advanced-event-loop/example-with-promise-and-set-timeout/set-timeout-promise.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/8-advanced-event-loop/example-with-promise-and-set-timeout/set-timeout-promise.js -------------------------------------------------------------------------------- /8-advanced-event-loop/example-with-promise-and-set-timeout/set-timeout.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/8-advanced-event-loop/example-with-promise-and-set-timeout/set-timeout.js -------------------------------------------------------------------------------- /8-advanced-event-loop/long-tasks/after.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/8-advanced-event-loop/long-tasks/after.html -------------------------------------------------------------------------------- /8-advanced-event-loop/long-tasks/before.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/8-advanced-event-loop/long-tasks/before.html -------------------------------------------------------------------------------- /8-advanced-event-loop/long-tasks/queue-microtask.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vp-online-courses/asynchronous-javascript-tutorial/HEAD/8-advanced-event-loop/long-tasks/queue-microtask.html --------------------------------------------------------------------------------