Delays between promises in promise chain

后端 未结 7 959
旧巷少年郎
旧巷少年郎 2020-12-14 20:35

Let\'s say I am using the following code to run a couple of promises in series:

let paramerterArr = [\'a\',\'b\',\'c\',\'d\',\'e\',\'f\']
parameterArr.reduce         


        
7条回答
  •  -上瘾入骨i
    2020-12-14 20:43

    Here is my complete solution for delayed promise sequences:

    
    function timeout_sequence_promise(promises = [], timeout = 200) {
    
        //fake promise used as buffer between promises from params
        const delay = ms => new Promise(resolve => setTimeout(resolve, ms));
    
        //we need to create array of all promises with delayed buffers
        let delayed_promises = [];
    
        let total = promises.length;
    
        let current = 0;
    
        //every odd promise will be buffer
        while (current < total) {
    
          delayed_promises.push(promises[current]);
          delayed_promises.push(delay(timeout));
    
          current++;
    
        }
    
        return Promise.all(delayed_promises).then((result) => {
    
          //we need to filter results from empty odd promises
          return result.filter((item, index) => (index+2)%2 === 0);
    
        });
    
    
      }
    
    

    It's receive array of promises and timeout delay in ms between them, as parameters.

    Hope, it will help you!

提交回复
热议问题