Od zera do JavaScript developera #6
Dawid Poslinski
https://miksturait.slack.com/
http://bit.ly/miksturait
Agenda
- Values, Types, and Operators
- Functions &Data Structures - Objects and Arrays
- Higher-order Functions
- Objects & first project
- Classes and OOP practises
- Modules & Asynchronous Programming
- Project - A Programming Language (review)
- Exercises - katas
Chess game case
Chess game case
teamplay
Chess game case
reuse code
Chess game case
refactor
Chess game case
navigation
Chess game case
optimization
CommonJS
module.exports
require()
CommonJS
https://repl.it
Get things together
1. Create and export in separate file (weekdayName.js) a function
that returns name of the day based on the provided number
2. List comma separated days of weeks (with your function)
Private?
Export multiple functions
In the same file, add function with months
import weekDays from './weekdays';
Import (ES6 & async)
module.exports = weekdayName; in CommonJS
export default weekdayName; // ES6
import { weekdayNames as days } from './weekdays';
Aliases / destructuring
Find out more...
bit.ly/dojo6-modules-1 (ES6 modules in-depth)
bit.ly/dojo6-modules-2 (modules in the browser)
NPM Packages
Demo
Asynchronous JS
Asynchronous programming is a means of parallel programming in which a unit of work runs separately from the main application thread and notifies the calling thread of its completion, failure or progress…
Examples
Sync vs Async
Sync vs Async
http://ember-concurrency.com/docs/task-concurrency
Sync vs Async
When?
Networking
Games
User interfaces
Where we don't want our app to freeze
Callback
Callback
Lets write a class that will implement upload method that accepts the name of the file and after 3 seconds (simulate upload) it calls callback function that will be assigned to .onSuccess.
Promise
resolve / reject
Get some data...
Try to fetch current weather info for Bielsko-Biała. Use .fetch method
finally
.all()
Load more than one...
async & await
Challenge
Install node
&
run the code
Challenge
write a server with http module that always returns "Hello world" at port 3000
Thanks =)
spread the word...
http://poslinski.net
Dawid Poslinski PoslinskiNet
Od zera do JavaScript developera #6
By Dawid Pośliński
Od zera do JavaScript developera #6
Porozmawiamy o modułach i jak ugryźć asynchroniczność w JS.
- 1,044