logo
Tags down

shadow

how to use promise in for loop


By : Heinz
Date : May 06 2020, 08:23 AM

I try to make asyncrous for loop with promise.
So I write a code like below.

const fetchData = function (num) {
  return new Promise((resolve, reject) => {
    if (num === 0) {
      setTimeout(() => {
        resolve(num);
      }, 3000);
    }
    if (num !== 0) {
      resolve(num);
    }
  });
};

for (let i = 0; i < 3; i += 1) {
  fetchData(i).then((i) => {
    console.log(i);
  });
}

And I want to get the result ,

0
1
2

however, I got,

1
2
0

How can I use properly use promise in the for loop?

Thank you very much.

Answer :

Usage of async/await makes it simple

Note the IIFE, because you need a function async to use await

const fetchData = function(num) {
  return new Promise((resolve, reject) => {
    if (num === 0) {
      setTimeout(() => {
        resolve(num);
      }, 3000);
    }
    if (num !== 0) {
      resolve(num);
    }
  });
};
(async() => {
  for (let i = 0; i < 3; i += 1) {
    await fetchData(i).then((i) => {
      console.log(i);
    });
  }
})();



Share : facebook icon twitter icon
Related Posts Related Posts :
  • clear array after form submit
  • pass url variable to javascript
  • access data using api
  • div position fixed css
  • add horizontal line between two div
  • disable toggle button css
  • css fixed line height
  • background image not working
  • table cell border
  • text line break css
  • overlay div on div
  • text direction rtl css
  • javascript convert string to an object
  • bind inner div click to outer div
  • jquery ajax oncomplete
  • jquery get element using variable
  • javascript send textbox value
  • pass div class content to another class or id
  • css new line after element
  • css calc not working properly
  • link disabled jquery
  • sql join table to subquery
  • MS Access SQL Issue with OR AND Operators
  • set textarea value using php
  • php merge two arrays into one
  • php form with google captcha
  • update current row in php
  • php date format mysql
  • mysql pdo select query
  • php function return an array
  • PHP mysqldump database to sql file
  • display image query
  • php create array using foreach loop
  • associative array php
  • group_concat in mysql laravel
  • php array_push empty
  • mysql on update cascade not working
  • pdo insert prepared statement
  • mysql insert ignore vs on duplicate key
  • mysql insert into existing row
  • mysql multi insert query
  • mysql group by show all rows
  • php change profile image
  • combine multiple arrays into one array php
  • how to sum values in an array
  • how to get sum of the total time
  • How to Create Facebook live stream without notification using API ?
  • on button click make div visible
  • css affect another element on hover
  • insert line after paragraph word
  • shadow
    Privacy Policy - Terms - Contact Us © bighow.org