NodeJs / Google Firebase не работает с строковыми методами - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть приложение Google Assistant, которое использует некоторые API для получения и доставки времени прибытия автобуса для моего местного университета.Дело в том, что API возвращает время прибытия в строке, подобной этой:

"2018-51-02T06: 51: 11"

Я пытаюсь манипулировать этой строкой с помощью функций slice и indexOfкоторые существуют в javascript, чтобы просто получить последнюю часть времени строки, точный код -

finalString = departure.slice(departure.indexOf('T')+1, departure.length);

, но в конце всего этого он все еще только распечатывает и отвечает исходной строкой.Автономный и локальный на моей машине этот код работает, но при загрузке в Firebase Functions он больше не работает.Любая помощь в этом вопросе?

app.intent("wheres the catabus", (conv, {route}) => {
    var routeDetails;
    var closest_stop;
    var finalString;
    return cataAPIService.getRouteDetails(route)
    .then((routeData) => {
        routeDetails = routeData;
        closest_stop = cataAPIService.findClosestStop(routeData, conv.device.location);
        return cataAPIService.getStopDetails(closest_stop.StopId)
    })
    .then((stopData) => {
        var departure = cataAPIService.getEstimatedStopDeparture(routeDetails, stopData);
        finalString = departure.slice(departure.indexOf('T')+1, departure.length);

        conv.ask('The closest stop to you is at ' + closest_stop.Name + '. The next departure is scheduled for ' + finalString);
    })
    .catch((error) => {
        console.log(error);
        conv.ask("I can't get that information right now, please try again.");
    });
});

1 Ответ

0 голосов
/ 03 декабря 2018

Мне не удалось продублировать вашу проблему в облачных функциях Firebase, используя node.js 6 и следующий код:

var departure="2018-51-02T06:51:11";
var finalString = departure.slice(departure.indexOf('T')+1, departure.length);
console.log('finalstring',finalString);

Как и ожидалось, в журналы было отправлено следующее:

finalstring 06: 51: 11

Если вы покажете полный код, вызывающий проблему, мы можем помочь вам.

Поведение, которое выВы видите, что на самом деле в строке нет буквы "T".

В противном случае я обычно использую код, подобный следующему:

var f2 = departure.split('T')[1];

(но только если я знаю, чтона самом деле T в дате)

...