17

PapaParse 的 API 有一个异步回调函数。我想知道如何将其转换为承诺。例如:

Papa.parse(fileInput.files[0], {
    complete: function(results) {
        console.log(results);
    }
});

任何帮助,将不胜感激!

4

3 回答 3

32

基本模式是

Papa.parsePromise = function(file) {
  return new Promise(function(complete, error) {
    Papa.parse(file, {complete, error});
  });
};

然后

Papa.parsePromise(fileInput.files[0]) .
  then(function(results) { console.log(results); });
于 2015-07-13T04:59:17.317 回答
5

如果你想使用 Async/Await...

someButtonClicked = async rawFile => {
    const parseFile = rawFile => {
      return new Promise(resolve => {
        papa.parse(rawFile, {
          complete: results => {
            resolve(results.data);
          }
        });
      });
    };
    let parsedData = await parseFile(rawFile);
    console.log("parsedData", parsedData);
  };
于 2019-06-21T15:53:17.737 回答
0

我想它可以与各种变体一起使用,我提供了要解析的字符串,尽管您可以将它与文件路径或 url 一起使用:

  const parseData = (content) => {
  let data;
  return new Promise( (resolve) => {
    Papa.parse(content, {
      header: true,
      delimiter: ',',
      dynamicTyping: true,
      complete: (results) => {
        data = results.data;
        resolve(data);
      }
    });
    
  });
};
于 2018-02-05T03:13:49.000 回答