TL; DR - я не разработчик и мне нужна помощь в устранении ошибки. Я получаю код ниже
Обновление: у меня есть некоторый рабочий код, но я получаю с перебоямиошибка в коде Visual Studio для необработанного отклонения обещания, и я не уверен почему.Иногда код работает нормально, в других случаях я получаю сообщение об ошибке в первом блоке кода
Response server [ny-front-api31] session [384923350]:
{"code":"INTERNAL_SERVERL_ERROR","message":"Internal server error
occurred","objectType":"KalturaAPIException","args":[]}
(node:34340) UnhandledPromiseRejectionWarning: #<Object>
(node:34340) UnhandledPromiseRejectionWarning: Unhandled promise rejection.
This error originated either by throwing inside of an async function without
a catch block, or by rejecting a promise which was not handled with
.catch(). (rejection id: 1)
(node:34340) [DEP0018] DeprecationWarning: Unhandled promise rejections are
deprecated. In the future, promise rejections that are not handled will
terminate the Node.js process with a non-zero exit code.
Вот код, который я запускаю:
const kaltura = require('kaltura-client');
const sql = require('./UserEngagementSQL');
const moment = require('moment');
const config = new kaltura.Configuration();
config.serviceUrl = 'https://www.kaltura.com';
const client = new kaltura.Client(config);
function process(pageIndex, start, end) {
return new Promise(function (resolve, reject) {
kaltura.services.session.start(
"omitted",
"omitted",
kaltura.enums.SessionType.ADMIN,
omitted)
.completion((success, ks) => {
if (!success) throw new Error(ks.message);
client.setKs(ks);
let reportType = kaltura.enums.ReportType.USER_ENGAGEMENT;
let reportInputFilter = new kaltura.objects.EndUserReportInputFilter();
reportInputFilter.fromDay = start;
reportInputFilter.toDay = end;
let pager = new kaltura.objects.FilterPager();
pager.pageIndex = pageIndex;
pager.pageSize = 500;
let order = "";
let objectIds = "";
kaltura.services.report.getTable(reportType, reportInputFilter, pager, order, objectIds)
.execute(client)
.then(async result => {
if (result.data){
const data = result.data.split(';');
for (var i = 0; i < data.length; i++) {
const row = data[i].split(',');
if (row[0].length > 0) {
await sql.insert(row);
}
}
resolve(data.length);
}else{
resolve(0);
}
});
})
.execute(client);
});
}
async function main() {
const initDate = moment('08/01/2018');
const startDate = initDate.format('YYYYMMDD');
const endDate = moment(startDate).add(30, 'day').format('YYYYMMDD');
let startingIndex = 1;
//console.log(startDate, endDate);
let shouldRun = true;
while(shouldRun){
let processed = await process(startingIndex++, startDate, endDate);
console.log('Number of processed records ' + processed);
shouldRun = processed > 0;
console.log('Processing page ' + startingIndex + ' Should Keep running ' + shouldRun);
}
}
main();
Исходное сообщение: I 'Я работаю с Kaltura API, и у них есть довольно неплохие запросы консоли для начинающих, которые почти как то, что мне нужно как не-разработчику, чтобы получить данные, которые мне нужны.Мне нужен был приведенный ниже код, чтобы можно было получить все записи за определенный диапазон дат.У меня есть ограничение в 10000 записей на звонок, поэтому мне нужно было пройти через запрос и постоянно проверять записи