无法构造 'File':使用 JSON.stringify() 时,迭代器 getter 在 chrome 60 中不可调用

Failed to construct 'File': Iterator getter is not callable in chrome 60 when use JSON.stringify()

系统配置:macOS Sierra 10.12.5; chrome60;

我正在尝试将 JSON 数据(响应对象)下载为 json 文件,但是当我尝试使用浏览器 File() 对象实现此目的时,出现错误

Failed to construct 'File': Iterator getter is not callable.

下面是我的代码

//`inputData` is the valid response getting from $http.get
var stringifyData = JSON.stringify(inputData);
console.log("stringifyData ", stringifyData);
var file = new File(blob, "filename.json", {type: "text/json;charset=utf-8"});
console.log("file", file);

问题是什么以及为什么会出现此错误。当我使用 JSON.stringify(inputData, undefined, 4); 时,它不会出错并在控制台中显示正确的对象。

在你的情况下 File 构造函数签名不正确,第一个参数必须是:

An Array of ArrayBuffer, ArrayBufferView, Blob, or DOMString objects — or a mix of any such objects. This is the file content encoded as UTF-8.

https://developer.mozilla.org/en-US/docs/Web/API/File/File#Parameters

new File([blob], "filename.json", {type: "text/json;charset=utf-8"});

我知道我迟到了,但我面临着同样的问题,所以我想 post 我的函数应该有助于将 BLOB 转换为 FILE。 谢谢

 imageCropped(event: ImageCroppedEvent) {
    this.Files = event.file;
    let fileName = new Date().getTime() + ".jpeg";
    let filedata = new File([this.Files], fileName, {
      type: "image/jpeg",
      lastModified: Date.now()
    });
    console.log(filedata);
  }