When you repeat a series of promise one by one, you may just use the data returned at the resolved(rejected) moment, but data generated by asynchronous promise may not arrived in time, previous promise may arrive later. You need to get rid of data that was out of date. Promise-Serializer can help you, it serialize promises to make sure that the resolved(or rejected) data was used by promise-generated sequence.