首页 > 解决方案 > 如何使用而不是 .then 调用创建循环

问题描述

我想将信息从 JIRA 插入 Sql 服务器,JIRA 服务器限制我并行发送的请求数量,因此我必须稀释我可以同时发送的呼叫数量。

我首先这样做并且它有效:

    mainJira.getAllPendingIssue(totalIssues).then(function(issues){
      var pendingTicket = mainJira.pop_to_array(issues)

      JiraToSql(pendingTicket,0,100)
      .then(
        JiraToSql(pendingTicket,100,200))
      .then(
        JiraToSql(pendingTicket,200,300))
    })

但由于问题的数量可能会有所不同,我想循环进行。我试过这种方式,但它不起作用

      mainJira.getAllPendingIssue(totalIssues).then(function(issues){
        var pendingTicket = mainJira.pop_to_array(issues)
        for (pas = 0; pas < totalIssues; pas+= 50 ){
          console.log('pas : ',pas );        
          JiraToSql(pendingTicket,pas,pas + 50);
          } 
        })    
      })

标签: node.js

解决方案


用于函数调用array.forEach()的结果getAllPendingIssue()

mainJira.getAllPendingIssue(totalIssues).then(function(issues){
      var pendingTicket = mainJira.pop_to_array(issues);
      pendingTicket.forEach(function(issue){
           modifiedJiraToSQL(issue); 
      });

注意:关于modifiedJiraToSQL()函数,你需要根据你的JiraToSQL()函数一次只处理一个问题。


推荐阅读