
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 17, 2019 02:19 PM
I’m using the Airtable API in Wix to create an entry in one of my bases. I can get the entry to create no problem, the issue is I would like to return the entry id after the creation and it returns ‘undefined’. See me code below, I can get the id number to print out at the point shown, but I can’t send it out to my other functions.
I’m pretty new to this, I’m sure it’s just a simple oversight, thank you in advance.
export function getCustomer (){
var nCustomer;
base('Customers').create({
"Name": "John Smith",
"Orders": [
]
}, function (err, record) {
if (err) {
console.error(err);
return;
}
nCustomer = record.getId();
//console.log here I get the record id
});
//console.log here, returns 'undefined'
return nCustomer;
}

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 24, 2019 09:36 AM
Basically, return nCustomer
happens BEFORE nCustomer = record.getId()
because javascript is asynchronous. So even though the base().create() method takes time, the rest of the getCustomer() function continues running. So getCustomer returns an undefined variable … then moments later the callback function that defines nCustomer (which was passed as an argument to the create method) is executed—but it’s too late as getCustomer() already finished and returned ‘undefined’.
You’ll want to either:
- run the code you want inside the create() callback
- call another function with the record variable as a parameter
- pass a custom callback function to getCustomer and run that with record as a parameter
This article should provide the insight you’re looking for:
Getting to know asynchronous JavaScript: Callbacks, Promises and Async/Await...
Introduction
Reading time: 11 min read

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 24, 2019 12:02 PM
Thank you so much! I’ll give that article a read. I did get it to work by calling another function with the record as a variable as you mentioned, but I wasn’t sure if there was something else that was going on.
I’m pretty new to JavaScript so the whole asynchronous thing is getting me caught up.
Thanks again for your help!
