Creating a promise chain in a for loop

后端 未结 2 929
醉话见心
醉话见心 2020-12-08 10:46

I would expect the code below to print one number on the console, then wait a second and then print another number. Instead, it prints all 10 numbers immediately and then wa

2条回答
  •  清歌不尽
    2020-12-08 10:55

    You have to assign the return value of .then back to chain:

    chain = chain.then(()=>getProm(i))
             .then(Wait)
    

    Now you will basically be doing

    chain
      .then(()=>getProm(1))
      .then(Wait)
      .then(()=>getProm(2))
      .then(Wait)
      .then(()=>getProm(3))
      .then(Wait)
      // ...
    

    instead of

    chain
      .then(()=>getProm(1))
      .then(Wait)
    
    chain
      .then(()=>getProm(2))
      .then(Wait)
    
    chain
      .then(()=>getProm(3))
      .then(Wait)
    // ...
    

    You can see that the first one is actually a chain, while the second one is parallel.

提交回复
热议问题