Ejemplos - Promesas y Asincronía

Promesas y Asincronía

Este ejemplo muestra cómo usar promesas y asincronía en TypeScript y su equivalente en JavaScript.

Ejemplo 1

// TypeScript
function esperar(ms: number): Promise {
    return new Promise(resolve => setTimeout(resolve, ms));
}

async function ejecutar(): Promise {
    document.body.innerHTML += '

Esperando 2 segundos...

'; await esperar(2000); document.body.innerHTML += '

¡Hecho!

'; } document.addEventListener("DOMContentLoaded", function() { ejecutar(); });
// JavaScript
function esperar(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}

async function ejecutar() {
    document.body.innerHTML += '

Esperando 2 segundos...

'; await esperar(2000); document.body.innerHTML += '

¡Hecho!

'; } document.addEventListener("DOMContentLoaded", function() { ejecutar(); });

Ejemplo 2

// TypeScript
function fetchData(url: string): Promise {
    return fetch(url).then(response => response.text());
}

async function mostrarDatos(): Promise {
    let datos: string = await fetchData('https://api.example.com/data');
    document.body.innerHTML += `

Datos recibidos: ${datos}

`; } document.addEventListener("DOMContentLoaded", function() { mostrarDatos(); });
// JavaScript
function fetchData(url) {
    return fetch(url).then(response => response.text());
}

async function mostrarDatos() {
    let datos = await fetchData('https://api.example.com/data');
    document.body.innerHTML += `

Datos recibidos: ${datos}

`; } document.addEventListener("DOMContentLoaded", function() { mostrarDatos(); });

Ejemplo 3

// TypeScript
function obtenerTiempo(ms: number): Promise {
    return new Promise(resolve => setTimeout(() => resolve(ms), ms));
}

async function tiempoTotal(): Promise {
    let tiempo: number = await obtenerTiempo(1000);
    document.body.innerHTML += `

Tiempo transcurrido: ${tiempo} ms

`; } document.addEventListener("DOMContentLoaded", function() { tiempoTotal(); });
// JavaScript
function obtenerTiempo(ms) {
    return new Promise(resolve => setTimeout(() => resolve(ms), ms));
}

async function tiempoTotal() {
    let tiempo = await obtenerTiempo(1000);
    document.body.innerHTML += `

Tiempo transcurrido: ${tiempo} ms

`; } document.addEventListener("DOMContentLoaded", function() { tiempoTotal(); });