promise.all waiting time (really tricky for me)

44 views Asked by At

first, here is dummy promise function:

const dummy_server = () => new Promise(resolve => {
  setTimeout(() => {resolve('success')}, 3000)
})

the scenario 1 is below:

const result1 = await dummy_server()
const result2 = await dummy_server()
const result3 = await dummy_server()
console.log(result1, result2, result3)

expected: will print 'success' 'success' 'success' after 3 * 3 = 9 seconds
actual: yes, what I thought

the scenario 2 is below:

const results = await Promise.all([dummy_server(), dummy_server(), dummy_server()])
console.log(results , 'hi')

expected: will print ['success', 'success', 'success'] after 3 * 1 = 3 seconds
actual: no...it prints right away! the result is correct, but why does it costs no time ?!?!

this is tricky for me....why?? can anybody explain it.....??

0

There are 0 answers