JavaScript Promise с FileReader - PullRequest
       7

JavaScript Promise с FileReader

0 голосов
/ 25 сентября 2018

Я пытаюсь вернуть разделенный массив, когда пользователь указывает текстовый файл в поле ввода, используя обещания, но console.log продолжает возвращать неопределенный, несмотря на то, что решение на самом деле находит данные.

Я знаюЯ неправильно использую обещание, но я просто не могу понять, любая помощь будет очень признательна

class TextReader {
  readFile (event) {
    let file = event.target.files[0]
    var promise = Promise.resolve()
    pFileReader(file)
    promise.then(function (result) {
      console.log(result)
    })

    function pFileReader (file) {
      return new Promise((resolve, reject) => {
        var reader = new FileReader()
        reader.onload = function found () {
          resolve(reader.result)
        }
        reader.readAsText(file)
      })
    }
  }
}

Это код в моем HTML

<input type='file' accept='text/plain' id="file" onchange='ValidateInput(event)'/>

      function ValidateInput (event) {
        let myTextReader = new TextReader()
        let output = myTextReader.readFile(event)
      }

1 Ответ

0 голосов
/ 25 сентября 2018

Обещание возвращается pFileReader, и вам нужно разрешить возвращенное Обещание, а не новое Обещание

class TextReader {
  readFile (event) {
    let file = event.target.files[0]
    var promise = pFileReader(file)
    promise.then(function (result) {
      console.log(result)
    })

    function pFileReader (file) {
      return new Promise((resolve, reject) => {
        var reader = new FileReader()
        reader.onload = function found () {
          resolve(reader.result)
        }
        reader.readAsText(file)
      })
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...