Иногда выполнение Dialogflow Webhook не работает на Firebase - PullRequest
1 голос
/ 21 июня 2020

Иногда мой веб-перехватчик не выполняется, а иногда - нет. В случае сбоя запрос занимает около 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)
      })
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...