async functions return promises, and await pauses until a promise has a value.

Async and Await

await.ts
async function doubleLater(value: number): Promise<number> {
    const doubled: number = await Promise.resolve(value * 2);
    return doubled;
}

const startValue: number = ;

async function main(): Promise<void> {
    const result: number = await doubleLater(startValue);
    console.log(`result=${result}`);
}

main();
async function doubleLater(value: number): Promise<number> {
    const doubled: number = await Promise.resolve(value * 2);
    return doubled;
}

const startValue: number = ;

async function main(): Promise<void> {
    const result: number = await doubleLater(startValue);
    console.log(`result=${result}`);
}

main();
async function doubleLater(value: number): Promise<number> {
    const doubled: number = await Promise.resolve(value * 2);
    return doubled;
}

const startValue: number = ;

async function main(): Promise<void> {
    const result: number = await doubleLater(startValue);
    console.log(`result=${result}`);
}

main();
async await `await` unwraps a promise inside an `async` function.