Я загружаю сообщения из subreddit
const electron = require('electron');
const _ = require('lodash');
const getsub = (sub, epoch) => {
let res = {};
const sub_url = `https://api.pushshift.io/reddit/search/submission/?subreddit=${sub}&limit=1000&sort=desc&before=${epoch}`;
return new Promise((resolve, reject) => {
axios
.get(sub_url)
.then(response => {
let d = response.data.data;
let e = d[d.length - 1].created_utc;
res.data = d;
res.epoch = e;
return resolve(res);
})
.catch(error => {
return reject(error.message);
});
});
};
Рассматриваемая функция
async function getSubreddit(sub) {
const utc = new Date().toJSON().slice(0, 10).replace(/-/g, "/");
const endEpoch = new Date(utc).getTime() / 1000;;
var dataArray = [];
let epoch;
const resp = await getsub(sub, endEpoch);
const jsondat = resp.data;
epoch = resp.epoch;
var result = _.map(dataArray, function(o) {
return _.pick(o, ['title', 'url', 'subreddit', 'created_utc', 'domain', 'full_link', 'created_utc'])
})
console.log(jsondat.length);
// console.log({result,epoch});
// downloadStuff(sub,result)
}
в то время как jsondat показывает длину 1000. Но после того, как я проанализирую ее с помощью lodash, результат показывает длину как 0.
Я запутался, потому что этот код работает на обычной странице JavaScript.
РЕДАКТИРОВАТЬ : Это глупая ошибка с моей стороны. Вот исправленный код
async function getSubreddit(sub) {
var utc = new Date().toJSON().slice(0, 10).replace(/-/g, "/");
var endEpoch = new Date(utc).getTime() / 1000;;
var dataArray = [];
const resp = await getsub(sub, endEpoch);
const jsondat = resp.data;
dataArray = jsondat.concat(dataArray);
epoch = resp.epoch;
var result = _.map(dataArray, function(o) {
return _.pick(o, ['title', 'author','url', 'subreddit', 'created_utc', 'domain', 'full_link', 'created_utc'])
})
console.log({result,epoch});
downloadStuff(sub,result)
}