Home > Mobile >  Cannot save loop data from api to json file
Cannot save loop data from api to json file

Time:06-10

i have problem with my code, all i need is just to save results from looping api into json file using writeFileSync. Here's my code:

function processRarity(limit) {
    var resultJson = [];
    for (var i = limit; i < limit   100; i  ) {
      const everything = async () => {
        const response = await fetch(
          "https://api-v2-mainnet.paras.id/token/asac.near::"   i
        );
        var json = await response.json();
        return json;
      };
      everything().then((res) => {
        console.log(res);
        resultJson = res;
      });
    }
    fs.writeFileSync(`${basePath}/results.json`, JSON.stringify(resultJson, null, 2));
}

when i check my json file, all i get is just:

[]

CodePudding user response:

You need to await the calls to everything().

Also, you should be pushing onto resultJson, not reassigning it each time through the loop.

const everything = async (i) => {
    const response = await fetch(
        "https://api-v2-mainnet.paras.id/token/asac.near::"   i
    );
    var json = await response.json();
    return json;
};


async function processRarity(limit) {
    var resultJson = [];
    for (var i = limit; i < limit   100; i  ) {
        let res = await everything(i);
        console.log(res);
        resultJson.push(res);
    }
    fs.writeFileSync(`${basePath}/results.json`, JSON.stringify(resultJson, null, 2));
}
  • Related