NodeJS: Readstream не вызывает прослушиватель событий «данные»

avatar
Mayank Patel
9 августа 2021 в 06:44
86
0
0

Я запускаю Readstream в файле, а затем передаю его в качестве параметра для работы в другом файле.

Для следующего кода:

  AzureImportAdaptor.prototype.getUploadRequestOpts = function (readStream, directoryName, fileName, callback) {
  const connection = this.getConnection()
  const strTime = new Date().toUTCString()
  const baseURI = connection.http.baseURI
  const adaptorState = this.getAdaptorState()
  const self = this
  let blobContent = ''
  let contentLength = 0
  const thresholdSize = 512 * 1024
  const requestBlockIdArray = []
  const responseBlockIdArray = []
  let readStreamEnded = false

  readStream.on('data', function (chunk) {
    blobContent = blobContent + chunk
    contentLength = contentLength + chunk.length
    if (contentLength >= thresholdSize) {
      contentLength = 0
      blobContent = ''
      putBlock(blobContent, contentLength)
    }
  })

  readStream.on('end', () => {
    if (contentLength) {
      putBlock(blobContent, contentLength)
    }
    readStreamEnded = true
  })

  function putBlock (blobContent, contentLength) {
    //Some code here
  }

  function putBlockList () {
  //Some code here
}

Для приведенного выше кода поток кода никогда не запускает прослушиватель событий 'data'.

Я наткнулся на предлагаемое решение, но не знаю, как его реализовать. Вот ссылка на него.

Источник

Ответы (0)