SlideShare a Scribd company logo
1 of 86
J
S
EVENT
LOOP
SON LE
sontl@designveloper.com
HOW DOES
ACTUALLY WORK
?
J
S
HEY
,
J
SWHAT ARE YOU ?
I’m a
SINGLE-THREADED,
NON-BLOCKING,
ASYNCHRONOUS,
CONCURRENT
language
I have a CALL
STACK,
an EVENT LOOP,
a CALLBACK
QUEUE,
some others APIs,
….
!!
GOOGLE’s V8 JAVASCRIPT RUNTIME
ENGINE
do you have a CALL
STACK,
an EVENT LOOP,
a CALLBACK QUEUE,
some others APIs,
and stuffs ???
HEY
,
I have a CALL
STACK and a
HEAP
…
I don’t know
what other
HEAP STACK
Memory
Allocation
The Call
Stack
main()
printSquare(n)
calcSquare(n)
multiply(n, n)
HEA
P
STAC
K
main()
printSquare(n)
calcSquare(n)
multiply(n, n)
WEB
APIs
DOM (document)
ajax (XMLHTTPRequest)
setTimeout
CALLBACK
QUEUE
onClick onLoad onDone
EVENT
LOOP
THE
CALLSTACK
One thread == One call stack == One thing at a time
main()
printSquare(n)
calcSquare(n)
multiply(n, n)
function multiply(a, b){
return a * b;
}
function calcSquare(n){
return multiply(n, n);
}
function printSquare(n){
var result = calcSquare(n);
console.log(result);
}
printSquare(4);
THE CALL STACK
main()
function multiply(a, b){
return b * b;
}
function calcSquare(n){
return multiply(n, n);
}
function printSquare(n){
var result = calcSquare(n);
console.log(result);
}
printSquare(4);
THE CALL STACK
main()
function multiply(a, b){
return b * b;
}
function calcSquare(n){
return multiply(n, n);
}
function printSquare(n){
var result = calcSquare(n);
console.log(result);
}
printSquare(4);
THE CALL STACK
main()
function multiply(a, b){
return b * b;
}
function calcSquare(n){
return multiply(n, n);
}
function printSquare(n){
var result = calcSquare(n);
console.log(result);
}
printSquare(4);
THE CALL STACK
main()
function multiply(a, b){
return b * b;
}
function calcSquare(n){
return multiply(n, n);
}
function printSquare(n){
var result = calcSquare(n);
console.log(result);
}
printSquare(4);
THE CALL STACK
main()
function multiply(a, b){
return b * b;
}
function calcSquare(n){
return multiply(n, n);
}
function printSquare(n){
var result = calcSquare(n);
console.log(result);
}
printSquare(4);
THE CALL STACK
printSquare(n)
main()
function multiply(a, b){
return b * b;
}
function calcSquare(n){
return multiply(n, n);
}
function printSquare(n){
var result = calcSquare(n);
console.log(result);
}
printSquare(4);
THE CALL STACK
printSquare(n)
calcSquare(n)
main()
function multiply(a, b){
return b * b;
}
function calcSquare(n){
return multiply(n, n);
}
function printSquare(n){
var result = calcSquare(n);
console.log(result);
}
printSquare(4);
THE CALL STACK
printSquare(n)
calcSquare(n)
multiply(n, n)
main()
function multiply(a, b){
return b * b;
}
function calcSquare(n){
return multiply(n, n);
}
function printSquare(n){
var result = calcSquare(n);
console.log(result);
}
printSquare(4);
THE CALL STACK
printSquare(n)
calcSquare(n)
main()
function multiply(a, b){
return b * b;
}
function calcSquare(n){
return multiply(n, n);
}
function printSquare(n){
var result = calcSquare(n);
console.log(result);
}
printSquare(4);
THE CALL STACK
printSquare(n)
main()
function multiply(a, b){
return b * b;
}
function calcSquare(n){
return multiply(n, n);
}
function printSquare(n){
var result = calcSquare(n);
console.log(result);
}
printSquare(4);
THE CALL STACK
printSquare(n)
console.log()
main()
function multiply(a, b){
return b * b;
}
function calcSquare(n){
return multiply(n, n);
}
function printSquare(n){
var result = calcSquare(n);
console.log(result);
}
printSquare(4);
THE CALL STACK
printSquare(n)
main()
function multiply(a, b){
return b * b;
}
function calcSquare(n){
return multiply(n, n);
}
function printSquare(n){
var result = calcSquare(n);
console.log(result);
}
printSquare(4);
THE CALL STACK
function multiply(a, b){
return b * b;
}
function calcSquare(n){
return multiply(n, n);
}
function printSquare(n){
var result = calcSquare(n);
console.log(result);
}
printSquare(4);
THE CALL STACK
function one(){
throw new Error(“Oops!”);
}
function two(){
one();
}
function three(){
two();
}
three();
THE CALL STACK
main()
three(n)
two()
one()
function stackTrace()
{
var err = new Error();
return err.stack;
}
HELPFUL WHEN
DEBUGGING
function foo(){
return foo();
}
foo();
THE CALL STACK
main()
foo()
function foo(){
return foo();
}
foo();
THE CALL STACK
main()
foo()
foo()
function foo(){
return foo();
}
foo();
THE CALL STACK
main()
foo()
foo()
foo()
function foo(){
return foo();
}
foo();
THE CALL STACK
main()
foo()
foo()
foo()
foo()
function foo(){
return foo();
}
foo();
THE CALL STACK
main()
foo()
foo()
foo()
foo()
foo()
foo()
foo()
BLOCKING
Code that are slow to run
BLOCKIN
GSome examples:
- console.log() is not slow
- A loop from 1 to 10,000,000,000 is slow
- Network request is slow
- Image processing is slow
var a = $.getSynchronous(“/a”);
var b = $.getSynchronous(“/b”);
var c = $.getSynchronous(“/c”);
// get data done, now log them out
console.log(a);
console.log(b);
console.log(c);
THE CALL STACK
main()
var a = $.getSynchronous(“/a”);
var b = $.getSynchronous(“/b”);
var c = $.getSynchronous(“/c”);
// get data done, now log them out
console.log(a);
console.log(b);
console.log(c);
THE CALL STACK
main()
getSynchronous(“/a”)
var a = $.getSynchronous(“/a”);
var b = $.getSynchronous(“/b”);
var c = $.getSynchronous(“/c”);
// get data done, now log them out
console.log(a);
console.log(b);
console.log(c);
THE CALL STACK
main()
getSynchronous(“/b”)
var a = $.getSynchronous(“/a”);
var b = $.getSynchronous(“/b”);
var c = $.getSynchronous(“/c”);
// get data done, now log them out
console.log(a);
console.log(b);
console.log(c);
THE CALL STACK
main()
getSynchronous(“/c”)
var a = $.getSynchronous(“/a”);
var b = $.getSynchronous(“/b”);
var c = $.getSynchronous(“/c”);
// get data done, now log them out
console.log(a);
console.log(b);
console.log(c);
THE CALL STACK
main()
console.log(a)
var a = $.getSynchronous(“/a”);
var b = $.getSynchronous(“/b”);
var c = $.getSynchronous(“/c”);
// get data done, now log them out
console.log(a);
console.log(b);
console.log(c);
THE CALL STACK
main()
console.log(b)
var a = $.getSynchronous(“/a”);
var b = $.getSynchronous(“/b”);
var c = $.getSynchronous(“/c”);
// get data done, now log them out
console.log(a);
console.log(b);
console.log(c);
THE CALL STACK
main()
console.log(c)
WHY IS THIS
A PROBLEM ?
Because we runs code in
BROWSERS.
See the demo.
THE SOLUTION
?Asynchronous callbacks.
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 5000);
console.log(“Designvelopers”);
Hi
Designvelopers
there
HOW DOES THIS WORK ?
THE CODE THE
CONSOLE
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 5000);
console.log(“Designvelopers”);
THE CALL STACK
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 5000);
console.log(“Designvelopers”);
THE CALL STACK
main()
console.log(“Hi”)
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 5000);
console.log(“Designvelopers”);
THE CALL STACK
main()
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 5000);
console.log(“Designvelopers”);
THE CALL STACK
main()
setTimeout(callback)
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 5000);
console.log(“Designvelopers”);
THE CALL STACK
main()
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 5000);
console.log(“Designvelopers”);
THE CALL STACK
main()
console.log(“DSV”)
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 5000);
console.log(“Designvelopers”);
THE CALL STACK
main()
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 5000);
console.log(“Designvelopers”);
THE CALL STACK
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 5000);
console.log(“Designvelopers”);
THE CALL STACK
callback
console.log(“there”);
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 5000);
console.log(“Designvelopers”);
THE CALL STACK
CONCURRENCY &
EVENT LOOP
One thing at a time.
Except, not really.
HEA
P
STAC
K
main()
printSquare(n)
calcSquare(n)
multiply(n, n)
WEB
APIs
DOM (document)
ajax (XMLHTTPRequest)
setTimeout
CALLBACK
QUEUE
onClick onLoad onDone
EVENT
LOOP
One
thing at
a time !
But we still
have this !
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 5000);
console.log(“Designvelopers”);
CALLBACK
QUEUE
EVENT
LOOP
CODE
CONSOLE
STACK WEB APIs
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 5000);
console.log(“Designvelopers”);
Hi
CALLBACK
QUEUE
EVENT
LOOP
CODE
CONSOLE
STACK WEB APIs
main()
console.log(“Hi”)
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 5000);
console.log(“Designvelopers”);
Hi
CALLBACK
QUEUE
EVENT
LOOP
CODE
CONSOLE
STACK WEB APIs
main()
setTimeout(callback)
timer
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 5000);
console.log(“Designvelopers”);
Hi
Designvelopers
CALLBACK
QUEUE
EVENT
LOOP
CODE
CONSOLE
STACK WEB APIs
main()
setTimeout(callback)
timer
console.log(“DSV”)
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 5000);
console.log(“Designvelopers”);
Hi
Designvelopers
CALLBACK
QUEUE
EVENT
LOOP
CODE
CONSOLE
STACK WEB APIs
callback
main()
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 5000);
console.log(“Designvelopers”);
Hi
Designvelopers
CALLBACK
QUEUE
EVENT
LOOP
CODE
CONSOLE
STACK WEB APIs
callback
WHAT DOES
DO ?
-It watches the Call Stack and the Callback Queue
-If the Stack is empty, it takes the first element in
the Callback Queue, and pushes it into the Stack
EVEN
T
LOOP
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 5000);
console.log(“Designvelopers”);
Hi
Designvelopers
there
CALLBACK
QUEUE
EVENT
LOOP
CODE
CONSOLE
STACK WEB APIs
callback
console.log(“there”)
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 5000);
console.log(“Designvelopers”);
Hi
Designvelopers
there
CALLBACK
QUEUE
EVENT
LOOP
CODE
CONSOLE
STACK WEB APIs
callback
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 5000);
console.log(“Designvelopers”);
Hi
Designvelopers
there
CALLBACK
QUEUE
EVENT
LOOP
CODE
CONSOLE
STACK WEB APIs
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 5000);
console.log(“Designvelopers”);
Hi
Designvelopers
there
CALLBACK
QUEUE
EVENT
LOOP
CODE
CONSOLE
STACK WEB APIs
Beside setTimeout, the other
web APIs are (for
examples):
- DOM manipulation
- XHR (XMLHttpRequest)
- Etc…
ANOTHER
EXAMPLEs:setTimeout(callback, 0);
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 0);
console.log(“Designvelopers”);
CALLBACK
QUEUE
EVENT
LOOP
CODE
CONSOLE
STACK WEB APIs
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 0);
console.log(“Designvelopers”);
Hi
CALLBACK
QUEUE
EVENT
LOOP
CODE
CONSOLE
STACK WEB APIs
main()
console.log(“Hi”)
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 0);
console.log(“Designvelopers”);
Hi
CALLBACK
QUEUE
EVENT
LOOP
CODE
CONSOLE
STACK WEB APIs
main()
setTimeout(callback)
timer
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 0);
console.log(“Designvelopers”);
Hi
Designvelopers
CALLBACK
QUEUE
EVENT
LOOP
CODE
CONSOLE
STACK WEB APIs
main()
setTimeout(callback)
timer
console.log(“DSV”)
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 0);
console.log(“Designvelopers”);
Hi
Designvelopers
CALLBACK
QUEUE
EVENT
LOOP
CODE
CONSOLE
STACK WEB APIs
callback
main()
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 0);
console.log(“Designvelopers”);
Hi
Designvelopers
CALLBACK
QUEUE
EVENT
LOOP
CODE
CONSOLE
STACK WEB APIs
callback
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 0);
console.log(“Designvelopers”);
Hi
Designvelopers
there
CALLBACK
QUEUE
EVENT
LOOP
CODE
CONSOLE
STACK WEB APIs
callback
console.log(“there”)
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 0);
console.log(“Designvelopers”);
Hi
Designvelopers
there
CALLBACK
QUEUE
EVENT
LOOP
CODE
CONSOLE
STACK WEB APIs
callback
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 0);
console.log(“Designvelopers”);
Hi
Designvelopers
there
CALLBACK
QUEUE
EVENT
LOOP
CODE
CONSOLE
STACK WEB APIs
console.log(“Hi”);
setTimeout(function (){
console.log(“there”);
}, 0);
console.log(“Designvelopers”);
Hi
Designvelopers
there
CALLBACK
QUEUE
EVENT
LOOP
CODE
CONSOLE
STACK WEB APIs
DEMOS WITH
LOUPE
ANOTHER
EXAMPLEs:- setTimeOut: the minimum time to execute a
function
- synchronous vs asynchronous and how
this effect the browser
- don’t block the event loop !
UNDERSTANDING
process.nextTick()
IN NODEJS
link
THE
END
J
S
EVENT
LOOP
SON LE
sontl@designveloper.com
THANKS FOR
WATCHING !

More Related Content

What's hot

Asynchronous JavaScript Programming with Callbacks & Promises
Asynchronous JavaScript Programming with Callbacks & PromisesAsynchronous JavaScript Programming with Callbacks & Promises
Asynchronous JavaScript Programming with Callbacks & PromisesHùng Nguyễn Huy
 
Asynchronous JavaScript Programming
Asynchronous JavaScript ProgrammingAsynchronous JavaScript Programming
Asynchronous JavaScript ProgrammingHaim Michael
 
JavaScript Engines and Event Loop
JavaScript Engines and Event Loop JavaScript Engines and Event Loop
JavaScript Engines and Event Loop Tapan B.K.
 
Spring Framework - AOP
Spring Framework - AOPSpring Framework - AOP
Spring Framework - AOPDzmitry Naskou
 
Introduction to Spring Boot!
Introduction to Spring Boot!Introduction to Spring Boot!
Introduction to Spring Boot!Jakub Kubrynski
 
Introducing Async/Await
Introducing Async/AwaitIntroducing Async/Await
Introducing Async/AwaitValeri Karpov
 
JavaScript: Variables and Functions
JavaScript: Variables and FunctionsJavaScript: Variables and Functions
JavaScript: Variables and FunctionsJussi Pohjolainen
 
Spring boot
Spring bootSpring boot
Spring bootsdeeg
 
5. Destructuring | ES6 | Assignment
5. Destructuring | ES6 | Assignment 5. Destructuring | ES6 | Assignment
5. Destructuring | ES6 | Assignment pcnmtutorials
 
Spring boot introduction
Spring boot introductionSpring boot introduction
Spring boot introductionRasheed Waraich
 
JavaScript - Chapter 6 - Basic Functions
 JavaScript - Chapter 6 - Basic Functions JavaScript - Chapter 6 - Basic Functions
JavaScript - Chapter 6 - Basic FunctionsWebStackAcademy
 
Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1Toshiaki Maki
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - CoreDzmitry Naskou
 
JavaScript Fetch API
JavaScript Fetch APIJavaScript Fetch API
JavaScript Fetch APIXcat Liu
 
Angular 2.0 forms
Angular 2.0 formsAngular 2.0 forms
Angular 2.0 formsEyal Vardi
 
Javascript Prototype Visualized
Javascript Prototype VisualizedJavascript Prototype Visualized
Javascript Prototype Visualized军 沈
 

What's hot (20)

Asynchronous JavaScript Programming with Callbacks & Promises
Asynchronous JavaScript Programming with Callbacks & PromisesAsynchronous JavaScript Programming with Callbacks & Promises
Asynchronous JavaScript Programming with Callbacks & Promises
 
Fetch API Talk
Fetch API TalkFetch API Talk
Fetch API Talk
 
Asynchronous JavaScript Programming
Asynchronous JavaScript ProgrammingAsynchronous JavaScript Programming
Asynchronous JavaScript Programming
 
JavaScript Engines and Event Loop
JavaScript Engines and Event Loop JavaScript Engines and Event Loop
JavaScript Engines and Event Loop
 
Spring Framework - AOP
Spring Framework - AOPSpring Framework - AOP
Spring Framework - AOP
 
Introduction to Spring Boot!
Introduction to Spring Boot!Introduction to Spring Boot!
Introduction to Spring Boot!
 
Introducing Async/Await
Introducing Async/AwaitIntroducing Async/Await
Introducing Async/Await
 
JavaScript: Variables and Functions
JavaScript: Variables and FunctionsJavaScript: Variables and Functions
JavaScript: Variables and Functions
 
Spring boot
Spring bootSpring boot
Spring boot
 
5. Destructuring | ES6 | Assignment
5. Destructuring | ES6 | Assignment 5. Destructuring | ES6 | Assignment
5. Destructuring | ES6 | Assignment
 
Spring boot introduction
Spring boot introductionSpring boot introduction
Spring boot introduction
 
JavaScript - Chapter 6 - Basic Functions
 JavaScript - Chapter 6 - Basic Functions JavaScript - Chapter 6 - Basic Functions
JavaScript - Chapter 6 - Basic Functions
 
Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1
 
Introduction to Spring Boot
Introduction to Spring BootIntroduction to Spring Boot
Introduction to Spring Boot
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - Core
 
JavaScript Fetch API
JavaScript Fetch APIJavaScript Fetch API
JavaScript Fetch API
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Angular 2.0 forms
Angular 2.0 formsAngular 2.0 forms
Angular 2.0 forms
 
Javascript functions
Javascript functionsJavascript functions
Javascript functions
 
Javascript Prototype Visualized
Javascript Prototype VisualizedJavascript Prototype Visualized
Javascript Prototype Visualized
 

Viewers also liked

Understanding the Single Thread Event Loop
Understanding the Single Thread Event LoopUnderstanding the Single Thread Event Loop
Understanding the Single Thread Event LoopTorontoNodeJS
 
Node.js: A Guided Tour
Node.js: A Guided TourNode.js: A Guided Tour
Node.js: A Guided Tourcacois
 
Concurrent Programming in Java
Concurrent Programming in JavaConcurrent Programming in Java
Concurrent Programming in JavaLakshmi Narasimhan
 
How to stop writing spaghetti code
How to stop writing spaghetti codeHow to stop writing spaghetti code
How to stop writing spaghetti codeTom Croucher
 
A Deeper look into Javascript Basics
A Deeper look into Javascript BasicsA Deeper look into Javascript Basics
A Deeper look into Javascript BasicsMindfire Solutions
 
Extending built in objects
Extending built in objectsExtending built in objects
Extending built in objectsMuhammad Ahmed
 
Js interpreter interpreted
Js interpreter interpretedJs interpreter interpreted
Js interpreter interpretedMartha Schumann
 
Apache Spark and MongoDB - Turning Analytics into Real-Time Action
Apache Spark and MongoDB - Turning Analytics into Real-Time ActionApache Spark and MongoDB - Turning Analytics into Real-Time Action
Apache Spark and MongoDB - Turning Analytics into Real-Time ActionJoão Gabriel Lima
 
Node.js in action
Node.js in actionNode.js in action
Node.js in actionSimon Su
 
Advanced Object-Oriented JavaScript
Advanced Object-Oriented JavaScriptAdvanced Object-Oriented JavaScript
Advanced Object-Oriented JavaScriptecker
 
Advanced Object Oriented JavaScript (prototype, closure, scope, design patterns)
Advanced Object Oriented JavaScript (prototype, closure, scope, design patterns)Advanced Object Oriented JavaScript (prototype, closure, scope, design patterns)
Advanced Object Oriented JavaScript (prototype, closure, scope, design patterns)raja kvk
 
Implementing a JavaScript Engine
Implementing a JavaScript EngineImplementing a JavaScript Engine
Implementing a JavaScript EngineKris Mok
 
Real World MongoDB: Use Cases from Financial Services by Daniel Roberts
Real World MongoDB: Use Cases from Financial Services by Daniel RobertsReal World MongoDB: Use Cases from Financial Services by Daniel Roberts
Real World MongoDB: Use Cases from Financial Services by Daniel RobertsMongoDB
 
Document Object Model
Document Object ModelDocument Object Model
Document Object Modelchomas kandar
 
(BDT310) Big Data Architectural Patterns and Best Practices on AWS
(BDT310) Big Data Architectural Patterns and Best Practices on AWS(BDT310) Big Data Architectural Patterns and Best Practices on AWS
(BDT310) Big Data Architectural Patterns and Best Practices on AWSAmazon Web Services
 

Viewers also liked (20)

Understanding the Single Thread Event Loop
Understanding the Single Thread Event LoopUnderstanding the Single Thread Event Loop
Understanding the Single Thread Event Loop
 
Node.js: A Guided Tour
Node.js: A Guided TourNode.js: A Guided Tour
Node.js: A Guided Tour
 
Concurrent Programming in Java
Concurrent Programming in JavaConcurrent Programming in Java
Concurrent Programming in Java
 
How to stop writing spaghetti code
How to stop writing spaghetti codeHow to stop writing spaghetti code
How to stop writing spaghetti code
 
Event loop
Event loopEvent loop
Event loop
 
A Deeper look into Javascript Basics
A Deeper look into Javascript BasicsA Deeper look into Javascript Basics
A Deeper look into Javascript Basics
 
Array
ArrayArray
Array
 
Extending built in objects
Extending built in objectsExtending built in objects
Extending built in objects
 
Js interpreter interpreted
Js interpreter interpretedJs interpreter interpreted
Js interpreter interpreted
 
Apache Spark and MongoDB - Turning Analytics into Real-Time Action
Apache Spark and MongoDB - Turning Analytics into Real-Time ActionApache Spark and MongoDB - Turning Analytics into Real-Time Action
Apache Spark and MongoDB - Turning Analytics into Real-Time Action
 
Node.js in action
Node.js in actionNode.js in action
Node.js in action
 
Advanced Object-Oriented JavaScript
Advanced Object-Oriented JavaScriptAdvanced Object-Oriented JavaScript
Advanced Object-Oriented JavaScript
 
Spark and MongoDB
Spark and MongoDBSpark and MongoDB
Spark and MongoDB
 
Advanced Object Oriented JavaScript (prototype, closure, scope, design patterns)
Advanced Object Oriented JavaScript (prototype, closure, scope, design patterns)Advanced Object Oriented JavaScript (prototype, closure, scope, design patterns)
Advanced Object Oriented JavaScript (prototype, closure, scope, design patterns)
 
Implementing a JavaScript Engine
Implementing a JavaScript EngineImplementing a JavaScript Engine
Implementing a JavaScript Engine
 
Real World MongoDB: Use Cases from Financial Services by Daniel Roberts
Real World MongoDB: Use Cases from Financial Services by Daniel RobertsReal World MongoDB: Use Cases from Financial Services by Daniel Roberts
Real World MongoDB: Use Cases from Financial Services by Daniel Roberts
 
JavaScript: Events Handling
JavaScript: Events HandlingJavaScript: Events Handling
JavaScript: Events Handling
 
Javascript
JavascriptJavascript
Javascript
 
Document Object Model
Document Object ModelDocument Object Model
Document Object Model
 
(BDT310) Big Data Architectural Patterns and Best Practices on AWS
(BDT310) Big Data Architectural Patterns and Best Practices on AWS(BDT310) Big Data Architectural Patterns and Best Practices on AWS
(BDT310) Big Data Architectural Patterns and Best Practices on AWS
 

Similar to JavaScript Event Loop

[JS EXPERIENCE 2018] Javascript Event Loop além do setInterval - Derek Stavis
[JS EXPERIENCE 2018] Javascript Event Loop além do setInterval - Derek Stavis[JS EXPERIENCE 2018] Javascript Event Loop além do setInterval - Derek Stavis
[JS EXPERIENCE 2018] Javascript Event Loop além do setInterval - Derek StavisiMasters
 
Playing With Fire - An Introduction to Node.js
Playing With Fire - An Introduction to Node.jsPlaying With Fire - An Introduction to Node.js
Playing With Fire - An Introduction to Node.jsMike Hagedorn
 
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...Domenic Denicola
 
[DevDay2018] How does JavaScript actually work? - By: Vi Nguyen, Senior Softw...
[DevDay2018] How does JavaScript actually work? - By: Vi Nguyen, Senior Softw...[DevDay2018] How does JavaScript actually work? - By: Vi Nguyen, Senior Softw...
[DevDay2018] How does JavaScript actually work? - By: Vi Nguyen, Senior Softw...DevDay.org
 
JavaScript Multithread or Single Thread.pptx
JavaScript Multithread or Single Thread.pptxJavaScript Multithread or Single Thread.pptx
JavaScript Multithread or Single Thread.pptxRAHITNATH
 
How to Vim - for beginners
How to Vim - for beginnersHow to Vim - for beginners
How to Vim - for beginnersMarcin Rogacki
 
JavaScript Futures—ES2017 and Beyond
JavaScript Futures—ES2017 and BeyondJavaScript Futures—ES2017 and Beyond
JavaScript Futures—ES2017 and BeyondJeff Strauss
 
Build Lightweight Web Module
Build Lightweight Web ModuleBuild Lightweight Web Module
Build Lightweight Web ModuleMorgan Cheng
 
Unit 5 Foc
Unit 5 FocUnit 5 Foc
Unit 5 FocJAYA
 
Think Async: Asynchronous Patterns in NodeJS
Think Async: Asynchronous Patterns in NodeJSThink Async: Asynchronous Patterns in NodeJS
Think Async: Asynchronous Patterns in NodeJSAdam L Barrett
 
Emerging Languages: A Tour of the Horizon
Emerging Languages: A Tour of the HorizonEmerging Languages: A Tour of the Horizon
Emerging Languages: A Tour of the HorizonAlex Payne
 
Being functional in PHP (PHPDay Italy 2016)
Being functional in PHP (PHPDay Italy 2016)Being functional in PHP (PHPDay Italy 2016)
Being functional in PHP (PHPDay Italy 2016)David de Boer
 
Herding types with Scala macros
Herding types with Scala macrosHerding types with Scala macros
Herding types with Scala macrosMarina Sigaeva
 
FunctionalJS - George Shevtsov
FunctionalJS - George ShevtsovFunctionalJS - George Shevtsov
FunctionalJS - George ShevtsovGeorgiy Shevtsov
 
1. George Shevtsov - Functional JavaScript
1. George Shevtsov - Functional JavaScript1. George Shevtsov - Functional JavaScript
1. George Shevtsov - Functional JavaScriptInnovecs
 
TypeScript Introduction
TypeScript IntroductionTypeScript Introduction
TypeScript IntroductionDmitry Sheiko
 
Getting Started with MongoDB and NodeJS
Getting Started with MongoDB and NodeJSGetting Started with MongoDB and NodeJS
Getting Started with MongoDB and NodeJSMongoDB
 

Similar to JavaScript Event Loop (20)

[JS EXPERIENCE 2018] Javascript Event Loop além do setInterval - Derek Stavis
[JS EXPERIENCE 2018] Javascript Event Loop além do setInterval - Derek Stavis[JS EXPERIENCE 2018] Javascript Event Loop além do setInterval - Derek Stavis
[JS EXPERIENCE 2018] Javascript Event Loop além do setInterval - Derek Stavis
 
Playing With Fire - An Introduction to Node.js
Playing With Fire - An Introduction to Node.jsPlaying With Fire - An Introduction to Node.js
Playing With Fire - An Introduction to Node.js
 
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
 
[DevDay2018] How does JavaScript actually work? - By: Vi Nguyen, Senior Softw...
[DevDay2018] How does JavaScript actually work? - By: Vi Nguyen, Senior Softw...[DevDay2018] How does JavaScript actually work? - By: Vi Nguyen, Senior Softw...
[DevDay2018] How does JavaScript actually work? - By: Vi Nguyen, Senior Softw...
 
JavaScript Multithread or Single Thread.pptx
JavaScript Multithread or Single Thread.pptxJavaScript Multithread or Single Thread.pptx
JavaScript Multithread or Single Thread.pptx
 
How to Vim - for beginners
How to Vim - for beginnersHow to Vim - for beginners
How to Vim - for beginners
 
JavaScript Futures—ES2017 and Beyond
JavaScript Futures—ES2017 and BeyondJavaScript Futures—ES2017 and Beyond
JavaScript Futures—ES2017 and Beyond
 
Build Lightweight Web Module
Build Lightweight Web ModuleBuild Lightweight Web Module
Build Lightweight Web Module
 
Unit 5 Foc
Unit 5 FocUnit 5 Foc
Unit 5 Foc
 
Think Async: Asynchronous Patterns in NodeJS
Think Async: Asynchronous Patterns in NodeJSThink Async: Asynchronous Patterns in NodeJS
Think Async: Asynchronous Patterns in NodeJS
 
Emerging Languages: A Tour of the Horizon
Emerging Languages: A Tour of the HorizonEmerging Languages: A Tour of the Horizon
Emerging Languages: A Tour of the Horizon
 
Being functional in PHP (PHPDay Italy 2016)
Being functional in PHP (PHPDay Italy 2016)Being functional in PHP (PHPDay Italy 2016)
Being functional in PHP (PHPDay Italy 2016)
 
mobl
moblmobl
mobl
 
Herding types with Scala macros
Herding types with Scala macrosHerding types with Scala macros
Herding types with Scala macros
 
FunctionalJS - George Shevtsov
FunctionalJS - George ShevtsovFunctionalJS - George Shevtsov
FunctionalJS - George Shevtsov
 
1. George Shevtsov - Functional JavaScript
1. George Shevtsov - Functional JavaScript1. George Shevtsov - Functional JavaScript
1. George Shevtsov - Functional JavaScript
 
ES6: The future is now
ES6: The future is nowES6: The future is now
ES6: The future is now
 
TypeScript Introduction
TypeScript IntroductionTypeScript Introduction
TypeScript Introduction
 
Getting Started with MongoDB and NodeJS
Getting Started with MongoDB and NodeJSGetting Started with MongoDB and NodeJS
Getting Started with MongoDB and NodeJS
 
JavaScript Core
JavaScript CoreJavaScript Core
JavaScript Core
 

More from Designveloper

Let us take care of your brand image
Let us take care of your brand imageLet us take care of your brand image
Let us take care of your brand imageDesignveloper
 
5 java script frameworks to watch in 2017
5 java script frameworks to watch in 20175 java script frameworks to watch in 2017
5 java script frameworks to watch in 2017Designveloper
 
Happy international women's day!
Happy international women's day!Happy international women's day!
Happy international women's day!Designveloper
 
Typing racer game - a nice break from work
Typing racer game  - a nice break from workTyping racer game  - a nice break from work
Typing racer game - a nice break from workDesignveloper
 
Should we work remotely?
Should we work remotely?Should we work remotely?
Should we work remotely?Designveloper
 
Meet song nhi your virtual financial assistance
Meet song nhi   your virtual financial assistanceMeet song nhi   your virtual financial assistance
Meet song nhi your virtual financial assistanceDesignveloper
 
Why pair programming is a good idea
Why pair programming is a good idea Why pair programming is a good idea
Why pair programming is a good idea Designveloper
 
5 worst mistakes of diy websites
5 worst mistakes of diy websites5 worst mistakes of diy websites
5 worst mistakes of diy websitesDesignveloper
 
Basic glossary of web design terms for non designers (part 2)
Basic glossary of web design terms for non designers (part 2)Basic glossary of web design terms for non designers (part 2)
Basic glossary of web design terms for non designers (part 2)Designveloper
 
Single page web application development using meteor js
Single page web application development using meteor jsSingle page web application development using meteor js
Single page web application development using meteor jsDesignveloper
 
Multiplayer game with unity3 d and meteor
Multiplayer game with unity3 d and meteorMultiplayer game with unity3 d and meteor
Multiplayer game with unity3 d and meteorDesignveloper
 
Awesome free resources for learning javascript
Awesome free resources for learning javascriptAwesome free resources for learning javascript
Awesome free resources for learning javascriptDesignveloper
 
What is the best java script frameworks to learn?
What is the best java script frameworks to learn?What is the best java script frameworks to learn?
What is the best java script frameworks to learn?Designveloper
 
Travelling forms a young man
Travelling forms a young manTravelling forms a young man
Travelling forms a young manDesignveloper
 
5 compelling reasons your website should be responsive
5 compelling reasons your website should be responsive5 compelling reasons your website should be responsive
5 compelling reasons your website should be responsiveDesignveloper
 
Reactive programming with tracker
Reactive programming with trackerReactive programming with tracker
Reactive programming with trackerDesignveloper
 
Benefits of using single page websites
Benefits of using single page websitesBenefits of using single page websites
Benefits of using single page websitesDesignveloper
 
What is the best programming language for beginner?
What is the best programming language for beginner?What is the best programming language for beginner?
What is the best programming language for beginner?Designveloper
 
No sql injection in meteor.js application
No sql injection in meteor.js applicationNo sql injection in meteor.js application
No sql injection in meteor.js applicationDesignveloper
 
How to deploy and scale your meteor apps
How to deploy and scale your meteor appsHow to deploy and scale your meteor apps
How to deploy and scale your meteor appsDesignveloper
 

More from Designveloper (20)

Let us take care of your brand image
Let us take care of your brand imageLet us take care of your brand image
Let us take care of your brand image
 
5 java script frameworks to watch in 2017
5 java script frameworks to watch in 20175 java script frameworks to watch in 2017
5 java script frameworks to watch in 2017
 
Happy international women's day!
Happy international women's day!Happy international women's day!
Happy international women's day!
 
Typing racer game - a nice break from work
Typing racer game  - a nice break from workTyping racer game  - a nice break from work
Typing racer game - a nice break from work
 
Should we work remotely?
Should we work remotely?Should we work remotely?
Should we work remotely?
 
Meet song nhi your virtual financial assistance
Meet song nhi   your virtual financial assistanceMeet song nhi   your virtual financial assistance
Meet song nhi your virtual financial assistance
 
Why pair programming is a good idea
Why pair programming is a good idea Why pair programming is a good idea
Why pair programming is a good idea
 
5 worst mistakes of diy websites
5 worst mistakes of diy websites5 worst mistakes of diy websites
5 worst mistakes of diy websites
 
Basic glossary of web design terms for non designers (part 2)
Basic glossary of web design terms for non designers (part 2)Basic glossary of web design terms for non designers (part 2)
Basic glossary of web design terms for non designers (part 2)
 
Single page web application development using meteor js
Single page web application development using meteor jsSingle page web application development using meteor js
Single page web application development using meteor js
 
Multiplayer game with unity3 d and meteor
Multiplayer game with unity3 d and meteorMultiplayer game with unity3 d and meteor
Multiplayer game with unity3 d and meteor
 
Awesome free resources for learning javascript
Awesome free resources for learning javascriptAwesome free resources for learning javascript
Awesome free resources for learning javascript
 
What is the best java script frameworks to learn?
What is the best java script frameworks to learn?What is the best java script frameworks to learn?
What is the best java script frameworks to learn?
 
Travelling forms a young man
Travelling forms a young manTravelling forms a young man
Travelling forms a young man
 
5 compelling reasons your website should be responsive
5 compelling reasons your website should be responsive5 compelling reasons your website should be responsive
5 compelling reasons your website should be responsive
 
Reactive programming with tracker
Reactive programming with trackerReactive programming with tracker
Reactive programming with tracker
 
Benefits of using single page websites
Benefits of using single page websitesBenefits of using single page websites
Benefits of using single page websites
 
What is the best programming language for beginner?
What is the best programming language for beginner?What is the best programming language for beginner?
What is the best programming language for beginner?
 
No sql injection in meteor.js application
No sql injection in meteor.js applicationNo sql injection in meteor.js application
No sql injection in meteor.js application
 
How to deploy and scale your meteor apps
How to deploy and scale your meteor appsHow to deploy and scale your meteor apps
How to deploy and scale your meteor apps
 

Recently uploaded

Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 

Recently uploaded (20)

Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 

JavaScript Event Loop