Upcoming database upgrades. to improve our reliability at 03:30 UTC on Feb. 25 / 7:30pm PT on Feb. 24. Some users may briefly experience slow load times or error messages. Learn more here

Confused with .find() and node.js

Topic Labels: API
2248 1
Showing results for 
Search instead for 
Did you mean: 

Hi, I’m new to the world of javascript and node.js – actually, I haven’t written much code for a decade, but I’m interested in building an Alexa skill which pulls data from an Airtable base.

I’m stuck with this function (below or on pastebin). Everything that gets displayed on the console is what I expect, however, I can’t work out how to get the function to return the string ‘Series Title’ (I know it’s something to do with the mystery of asynchronous code).

Any ideas of where I’ve gone wrong (or pointers to tutorials/examples to help get my head around this).

GPDataHelper.prototype.getSermonSeries = function(date){
var err, records, weekRecord, seriesRecord;

var series, seriesID, seriesTitle;
var filter = 'IS_AFTER({Date}, "' + date + '")';

maxRecords: 1,
view: 'Main View',
filterByFormula: filter,
sort: [{field: "Date"}]
}).firstPage(function(err,records) {
	if (err) { console.error(err); return; }
		console.log('Retrieved', weekRecord.get('Date'));
		series = weekRecord.get('Series');
		series.forEach(function(seriesID) {
			base('Sermon Series').find(seriesID, function(err, seriesRecord) {
	    	if (err) { console.error(err); return; }
    		console.log(seriesRecord.get('Series Title'));
			seriesTitle = seriesRecord.get('Series Title');
			return seriesTitle;
1 Reply 1

Ok - I’ve got things working much better now. For others learning the ins-and-outs of async coding, the project is at!/gp-skill and this code snippet comes from gp_data_helper.js.