Promise.all behaviour
by Guillaume Seguin
HTML
<div id="app"></div>
<div id="test"></div>
<div id="error"></div>
CSS
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
#app, #test, #error {
background: #fff;
border-radius: 4px;
padding: 20px;
transition: all 0.2s;
text-align: center;
margin: 0.5rem;
}
TypeScript
interface Person {
firstName: string;
lastName: string;
}
function greeter(person: Person) {
return "Hello, " + person.firstName + " " + person.lastName;
}
let user = {
firstName: "Malcolm",
lastName: "Reynolds"
};
Promise.all([
new Promise((resolve) => {
setTimeout(() => {
document.querySelector("#app").innerHTML = greeter(user);
resolve();
}, 3000);
}),
Promise.reject("ERROR!!"),
new Promise((resolve) => {
setTimeout(() => {
let guillaume = {
firstName: "Guillaume",
lastName: "Seguin"
};
document.querySelector("#test").innerHTML = greeter(guillaume);
resolve();
}, 5000);
}),
]).catch(error => {
document.querySelector("#error").innerHTML = error;
}