Иногда мой веб-перехватчик не выполняется, а иногда - нет. В случае сбоя запрос занимает около 2500 мс, прежде чем он вернет пустой ответ. Журналы firebase показывают, что намерение запускается и выполняет все вычисления, но не может выполнить agent.add () в конце. В случае успешного выполнения того же намерения веб-перехватчика я получаю ответ в течение 500 мс. Я читал, что, возможно, отсутствие обещания могло быть проблемой, но у меня тоже есть обещание.
function findCalendarEvent(agent) {
let x = new Promise((resolve, reject) => {
calendar.events.list({
auth: serviceAccountAuth, // List events for time period
calendarId: calendarId,
timeMin: (new Date(Date.parse(agent.parameters.date.split('T')[0] + 'T' + "00:00:00" + timeZoneOffset))).toISOString(),
timeMax: (new Date(Date.parse(agent.parameters.date.split('T')[0].split("-")[0] + "-" + agent.parameters.date.split('T')[0].split("-")[1] + "-" + (parseInt(agent.parameters.date.split('T')[0].split("-")[2]) + 1).toString() + 'T' + "00:00:00" + timeZoneOffset))).toISOString(),
singleEvents: true,
orderBy: "startTime"
}, (err, calendarResponse) => {
console.log(calendarResponse);
err ? reject(err) : resolve(calendarResponse);
})
});
return x.then((calendarResponse) => {
appointments = calendarResponse.data.items;
return available_slots(appointments).then(slots => {
console.log(slots);
let ctx = {'name': 'appointment_time', 'lifespan': 5, 'parameters': {'date':agent.parameters.date}};
agent.setContext(ctx);
return agent.add(slots)
}).catch(err => {
return agent.add(err)
});
})
.catch(err => {
return agent.add(err)
})
}