Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

82
Vistas
how to loop inside promise async await method?

i wanna make output like this :

kembalian 1: 30000 kembalian 2: 20000 kembalian 3: 10000 kembalian 4: 5000

so after kembalian, there is number, but i wanna make it automaticly

with this code

function beliPromise(uang, harga) {

    return new Promise(function (resolve, reject) {

        setTimeout(function () {

            const kembalian = uang - harga;

            let angka = i

            for (let i = 0; i <= 10; i++) {
                console.log(i)

            }

            console.log(`kembalian ${angka}: ${kembalian}`);

            if (kembalian > 0) {
                resolve(kembalian);
            } else {
                reject(0); // atau bisa reject('uang anda habis bro :(')
            }
        }, 500)
    })
}

async function kembalianAwait() {
    try {
        const kembalian1 = await beliPromise(50000, 20000);
        const kembalian2 = await beliPromise(kembalian1, 10000);
        const kembalian3 = await beliPromise(kembalian2, 10000);
        const kembalian4 = await beliPromise(kembalian3, 5000);
        // const kembalian5 = await beliPromise(kembalian4, 50000);
        // return kembalian5;
    } catch (err) {
        throw err
    }
}


kembalianAwait()

how could be ?

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

You can use "await" in a for loop, for example:

function beliPromise(uang, harga) {
    return new Promise(function (resolve, reject) {
        setTimeout(function () {
            const kembalian = uang - harga;
            if (kembalian >= 0) {
                resolve(kembalian);
            } else {
                reject();
            }
        }, 500)
    })
}

let uang = 50000;
async function kembalianAwait() {
    const harga = [20000, 10000, 10000, 5000];
    try {
        for (let i = 0; i < harga.length; i++) {
            let kembalian = await beliPromise(uang, harga[i])
            console.log(`kembalian ${i + 1}: ${kembalian}`);
            uang = kembalian
        }
    } catch (err) {
        console.log(err);
    }
}

And note the usage of >=0, I think having the exact amount of money should not result in an Error.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Use a global index variable:

var index  = 1

function beliPromise(uang, harga) {

  return new Promise(function(resolve, reject) {
    const kembalian = uang - harga;

    console.log(`kembalian ${index}: ${kembalian}`);

    index ++;

    if (kembalian > 0) {
      resolve(kembalian);
    } else {
      reject(0); // atau bisa reject('uang anda habis bro :(')
    }
    
  })
}

async function kembalianAwait() {
  try {
    const kembalian1 = await beliPromise(50000, 20000);
    const kembalian2 = await beliPromise(kembalian1, 10000);
    const kembalian3 = await beliPromise(kembalian2, 10000);
    const kembalian4 = await beliPromise(kembalian3, 5000);
    // const kembalian5 = await beliPromise(kembalian4, 50000);
    // return kembalian5;
  } catch (err) {
    throw err
  }
}

kembalianAwait()

about 4 years ago · Juan Pablo Isaza Denunciar

0

You have a loop, but reference i outside the loop. You need to include the loop's code into the loop:

function beliPromise(uang, harga) {

    return new Promise(function (resolve, reject) {

        setTimeout(function () {

            const kembalian = uang - harga;

            for (let i = 0; i <= 10; i++) {
                let angka = i

                console.log(i)
                console.log(`kembalian ${angka}: ${kembalian}`);

                if (kembalian > 0) {
                    resolve(kembalian);
                } else {
                    reject(0); // atau bisa reject('uang anda habis bro :(')
                }

            }

        }, 500)
    })
}

async function kembalianAwait() {
    try {
        const kembalian1 = await beliPromise(50000, 20000);
        const kembalian2 = await beliPromise(kembalian1, 10000);
        const kembalian3 = await beliPromise(kembalian2, 10000);
        const kembalian4 = await beliPromise(kembalian3, 5000);
        // const kembalian5 = await beliPromise(kembalian4, 50000);
        // return kembalian5;
    } catch (err) {
        throw err
    }
}


kembalianAwait()

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda