Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';无法在'之外获得Papa解析的结果;完成';功能_Javascript_Angular_Typescript_Asynchronous_Papaparse - Fatal编程技术网

Javascript Can';无法在'之外获得Papa解析的结果;完成';功能

Javascript Can';无法在'之外获得Papa解析的结果;完成';功能,javascript,angular,typescript,asynchronous,papaparse,Javascript,Angular,Typescript,Asynchronous,Papaparse,我目前正在使用带Angular 2的Papa Parse将csv列表加载到列表中,我希望能够将该列表传递给另一个组件。我能够读取csv数据并使用控制台日志打印它们,但我无法在“完成”功能之外处理解析数据的结果。我知道这是因为解析文件是一个异步过程,我必须使用回调函数。我试图用回调函数来解决这个问题,但我仍然无法使用Papa Parse本身的“complete”函数之外的数据 这是我尝试过的一个例子,但是这里的listOfLoads在convertloads方法中是未定义的,而不是在任何其他正常的

我目前正在使用带Angular 2的Papa Parse将csv列表加载到列表中,我希望能够将该列表传递给另一个组件。我能够读取csv数据并使用控制台日志打印它们,但我无法在“完成”功能之外处理解析数据的结果。我知道这是因为解析文件是一个异步过程,我必须使用回调函数。我试图用回调函数来解决这个问题,但我仍然无法使用Papa Parse本身的“complete”函数之外的数据

这是我尝试过的一个例子,但是这里的listOfLoads在convertloads方法中是未定义的,而不是在任何其他正常的同步方法中

export class AppComponent {


 listOfLoads: Load[] = [];

  constructor(){
  }

  importFile(fileInput: any, callBack) {
    let listOfLoads: Load[] = [];
    let file = fileInput.target.files[0];


    let result = Papa.parse(fileInput.target.files[0], {
      complete: function (results) {
        callBack(results.data);
      },
      header: true,
      delimiter: ";"
    });
  }

  convertLoads(data) {
    this.listOfLoads = deserialize<Load[]>(Load, data);
  }

}
导出类AppComponent{
加载列表:加载[]=[];
构造函数(){
}
导入文件(文件输入:任意,回调){
让列表加载:加载[]=[];
让file=fileInput.target.files[0];
让result=Papa.parse(fileInput.target.files[0]{
完成:功能(结果){
回调(results.data);
},
标题:对,
分隔符:“;”
});
}
转换负载(数据){
this.listoflods=反序列化(加载、数据);
}
}

有没有一种方法可以将数据放在列表中,并在其他组件中使用?我到处寻找解决办法

您可以将组件函数交给Papaparse。 一旦Papaparse加载数据,它将触发您的函数。 或者您可以创建一个可观察的,当数据加载完成时,您可以在subscribe块中执行任何想要的操作

我为你创造了一个工作平台。你可以看看这个


可观察到的例子非常有效!非常感谢你!