Aug 11, 2021 05:14 AM
I’ve written an automation script that I’d like to migrate over to the scripting app. I know that there are some differences between the two, but I’m having a lot more trouble than I thought. The script connects to an external API and pulls data from the API into my base. I seem to be running into issues with the async functions I’ve written to connect to the API and pull the data in. The code works when it’s not wrapped up in a function, but fails when it looks like the example below:
async function testFunction(){
let response = await fetch('https://api.github.com/orgs/Airtable');
console.log(await response.json());
}
testFunction();
This code above works as an automation script, but not in the scripting app.
Solved! Go to Solution.
Aug 13, 2021 09:34 AM
Aug 13, 2021 09:34 AM
Await the testFunction() invocation?
Aug 13, 2021 09:55 AM
You should await the testFunction, as Dominik mentioned.
Also, fetch works differently in automation scripts versus scripting app. Try using remoteFetchAsync
instead of fetch
. See the documentation for more details.
Aug 14, 2021 04:35 AM
Adding await
solved it, thanks! Kuovonne, I can see why remoteFetchAsync
might work better on an automation since it’s coming from the Airtable server itself. Thanks to you both for the help!
Aug 14, 2021 05:43 AM
Glad to hear your problem is fixed.
It’s actually the other way around. remoteFetchAsync
is for use in scripting app, not in an automation script. It is most useful when fetch
in scripting app causes CORS errors that don’t happen in automation scripts.