Javascript 下载API返回的映像

Javascript 下载API返回的映像,javascript,rest,api,blob,axios,Javascript,Rest,Api,Blob,Axios,我正在使用sportradar api。我正在进行的api调用返回一个png图像。到现在为止,我已经做到了 const apiCall = (url) => { return axios.get(url).then((data) => { if(data){ return Promise.resolve(data); } else{

我正在使用sportradar api。我正在进行的api调用返回一个png图像。到现在为止,我已经做到了

    const apiCall = (url) => {
        return axios.get(url).then((data) => {
            if(data){
                return Promise.resolve(data);
            }
            else{
                return Promise.reject();
            }
        });
    }

    //all data in data.assetlist
    for(let i=0; i<data.assetlist.length; i++){
        let imageLink = data.assetlist[i].links[12].href;
        let url = `https://api.sportradar.us/nfl-images-p3/ap_premium${imageLink}?api_key=${api_key}`;
        apiCall(url).then((data) => {
            console.log(data);
            let blob = new Blob(data, {type: "image/png"}); // didn't compile with this line

        });
   }

我没有这样做,因为我担心数据太大,可能会使我的系统(旧笔记本)崩溃。如果我做得对,我想知道如何将此blob文件作为png文件保存到我的系统中,如果没有,我想知道如何将此数据流转换为图像,并将其下载并保存到本地目录中。

如果您获得的图像已经是blob,则可以使用此库下载它:


我认为你不应该如此担心尺寸,只要去做就行了。

经过大量研究,我找到了这个解决方案,它成功了

apiCall(url).then((response) => {
        response.data.pipe(fs.createWriteStream('test.jpg'));
    });

使用小型ImageDos axios.get know运行测试以将响应视为binary?节点的文件系统模块
let FileSaver = require('file-saver');
FileSaver.saveAs(blob, "my_image.png");
apiCall(url).then((response) => {
        response.data.pipe(fs.createWriteStream('test.jpg'));
    });