异步并行限制崩溃

async parallel Limit crashing

我正在尝试使用异步并行限制,但每次我使用它时它似乎就停止了。 并且在第一次迭代后不再继续。我希望它一直持续到数组完成我该怎么做?

const parallelLimit = require("async/parallelLimit");
async function publishMessage(data) {
  const messageId = await pubSubClient
    .topic(topicName)
    .publishJSON(data)
    .catch((err) => console.log(err));
  console.log(messageId);
}
messages = messages.flat();
        let promises = messages.map((row) => {
          return () => publishMessage(row);
        });
        
        await parallelLimit(promises, 4000);

您需要将一组异步函数传递给 parallelLimit()。

const parallelLimit = require("async/parallelLimit");

function publishMessage(data) {
  return async function () {
    try {
      const messageId = await pubSubClient.topic(topicName).publishJSON(data);
      console.log(messageId);
    } catch (err) {
      throw err;
    }
  };
}

const asyncFuncs = messages.flat().map(row => publishMessage(row));

(async function run() {
  try {
    await parallelLimit(asyncFuncs, 4000);
  } catch (err) {
    console.log(err);
  }
})();