Прежде всего, я новичок в NodeJS и хочу вникать в мои навыки. У меня есть стол в Airtable и хочу получить от него все элементы. Легко с airtable api для nodejs. Но то, что я хочу сделать, это нажать и сохранить эти элементы в закладке для будущего (JSON, excel ...). Для этого я использую callbaks, так как вызов асинхронный .. Я слышал о Обещании, но это очень ново для меня, и я с трудом uderstanding это .. Вот мой код сейчас:Слишком много обратных вызовов .. nodeJS airtbale api
var Airtable = require('airtable');
Airtable.configure({
endpointUrl: 'https://api.airtable.com',
apiKey: 'keyKWYJPOEObWhNt2'
});
var base = Airtable.base('app4qIwfmG0ZKAdBH');
var view = "Main View";
var tab = [];
base('Table 1').select({
view : view}).eachPage(function page(records, fetchNextPage){records.forEach(function(record){
tab.push({
"Name": record.get('Name'),
"Notes": record.get('Notes')
});
});
fetchNextPage();
pushToArray(tab);
}, function done (error){
if(error){ console.log(error);
console.log(tab);}
});
function pushToArray(tab) {
TabToJson(tab);
return tab;
};
function TabToJson(tab){
console.log(tab);
return JSON.stringify(tab);
};
Как я могу реализовать обещания? Это необходимо здесь? Я не хочу, чтобы в итоге оказалось дюжина функций обратного вызова. Спасибо всем, и у меня хороший день!
Это будет удобно для вас: https://www.promisejs.org/ – deeveeABC
Хотя я большой поклонник [Bluebird] (http://bluebirdjs.com) для обещаний, вам было бы намного проще если вы придумали лучший способ организации вашего кода обратного вызова, так что происходит более очевидно. – tadman