Asynchronous JavaScript
Amit Jain
Front-end engineer, CSS, HTML , JavaScript junkie and web lover.
Senior Engineer UI @ inmobi.com
One of the most powerful features of the language is its flexibility. As a JavaScript programmer, you can make your programs as simple or as complex as you wish them to be
& How to solve complex Async problems using These /\ methods
Loops
Events and Arrays are both
collections
we can program them the same way
var iterator = [1,2,3].iterator();
console.log(iterator.next())
{ value: 1, done: false }
console.log(iterator.next())
{ value: 2, done: false }
console.log(iterator.next())
{ value: 3, done: false }
console.log(iterator.next())
{ done: ture }
Text
document.addEventListener(
“mousemove”,
function next(e) {
console.log(e);
});
);
{ clientX: 425, clientY: 543 }
{ clientX: 536, clientY: 123 }
{ clientX: 267, clientY: 239 }Iterator -- progressively send information to consumer -- Observer
The Iterator and Observer Pattern are Symmetrical
Observer --|-- Interator
Iterator object request from producer.
Consumer pulling the value one item a time
(Consumer in control )
Observer pushes info one item a time.
Observer pattern producer iterates you,
(Producer in control)
var mouseMoves =
Observable.
fromEvent(element, “mousemove”);
// “subscribe”
var subscription =
mouseMoves.forEach({
onNext: event => console.log(event), // error
onError: error => console.error(error),// completed
onCompleted: () => console.log(“done”)
});
// “unsubscribe”
subscription.dispose();var clicks = Observable.fromEvent(button, 'click');
var points =
clicks.map(function(e) {
return {x: e.clientX, y: e.clientY};
});var drags =
mouseDowns.
map(function(e) {
return MouseMoves.
takeUntil(MouseUps);
}).
concatAll();Questions & Answers!