提问者:小点点

如何在NodeJS中创建异步缓冲区


我搜索,搜索,但没有找到async Buffer.from()。我有for循环和Buffer.from(),这一切都是可以的,但这个缓冲区睡眠我的时间,为100-300毫秒,不幸的是,这是不可能的情况。你有解决办法吗?

//编辑

-返回Promise Buffer,我需要该base64。

代码如下:

try {
    groupIcon = Buffer.from(await group.getIcon()).toString("base64");
} catch (error) {
    console.log("Not found icon");
}

共1个答案

匿名用户

缓冲器同步。你可以修改缓冲区几个片断,但是如果没有真正大的缓冲区,我不建议你这样做。这可能很难处理,我认为这对你的问题不是一个好的做法。我有一个更好的想法和建议来加快你的功能。

如果没有在循环中等待的好理由,不要这样做。我不知道你的代码到底在做什么,但是我想你可以像下面这样修改你的代码以获得更好的性能。

let yourFunc = async () => {
  /** Some codes about groups array */
  const groups = await getGroups();
  const iconPromises = [];
  for (let group of groups) {
    try {
      iconPromises.push(group.getIcon());
    } catch (error) {
      console.log('Not found icon');
    }
  }
  //Or you can use Promise.allSettled for better error handling
  const icons = await Promise.all(iconPromises);
  const groupIcons = icons.map(icon => Buffer.from(icon).toString('base64'));
  /** then do whatever you want  */
}