Tache Asynchrone

setTimeout(console.log("A"), 1000);
setTimeout(console.log("B"), 0);
console.log("C");
console.log("D");

// ordre : C D B A 

Callback

Synchrone

function additionAsync(a, b, callback) {
	callback(a+b);
}

console.log("A");
additionAsync(1, 2, result => console.log("Res: ${result}"));
console.log("C");

// ordre : A ${result} C

Asynchrone

function additionAsync(a, b, callback) {
	setTimeout(callback(a+b), 1000);
}

console.log("A");
additionAsync(1, 2, result => console.log("Res: ${result}"));
console.log("C");

// ordre : A C ${result}

Promesse

Remplaçant des callbacks pour éviter le “callback hell”

L'objet Promise représente l'achèvement éventuel (ou l'échec) d'une opération asynchrone et la valeur qui en résulte.

resources : mozilla

image.png

Async / Await

Alternative au promesse

Async

Permet de transformer une fonction en promesse

function hello() {
	console.log("Hello");
}

async function world() {
	console.log("world");
}

hello();
world();

// sortie : 

Similarité avec les callbacks

async function foo() {
  return 1;
}

function foo() {
  return Promise.resolve(1);
}

Await