NodeJS:为什么`node-fetch` 响应缓冲区会更改常量值?

问题描述

要将文件上传到 S3 存储桶,我使用以下函数进行了管理,我将直接从另一个 URL 上传文件,为此我使用了 node-fetch 包。

public async uploadFile(imageCount) {
  try {
    const count = imageCount
    console.log("count A- ",count) // let's say,100

    return new Promise(async (resolve) => { 

    const response = await fetch(url),buffer = await response.buffer();

    console.log("count B- ",count) // Now value becomes any random value i.e,80 or 20 or 120 etc

      const resolution = [
        { key: 'thumbnail',value: { height: 256,width: 256 }},{ key: 'small',value: { height: 72,width: 72 }},]
      resolution.forEach(size => {
        Sharp(buffer)
        .resize(size.value).toBuffer()
        .then(async data => {
          var object = {
            Body: data,Bucket: ENV.BUCKET_NAME,Key: `${size.key}/${imglabel}/${keys}.${fileExt}`,ServerSideEncryption: "AES256",};
          bulkOfBody.push(object)
          responses = await Promise.all(
            bulkOfBody.map(param => s3.upload(param).promise())
          )
          if (responses.length === 2) {
            resolve(responses);
          }
        })
      })
    })
  } catch (error) {
    throw error;
  }
}

现在,奇怪的是,在 count A 日志位置,计数变得完美,但是当我执行 response.buffer() 时,计数将更改为任何随机值。

我可以知道原因吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...