Keen-JS: Yikes - Произошла ошибка

Я использую keen-js v.3.4.0. Я построил вокруг него угловую сервисную обертку (также, пожалуйста, не CleanKeen был назван так через expose-loader, потому что у меня также есть Segment, который загружает их собственную версию, которая не обладает такой же функциональностью, как полная версия, и это был единственный способ, который я мог загружать бок о бок:

export class JMChartService {
constructor($timeout) {
    'ngInject';
    this.$timeout = $timeout;
    this.initialized = false;
    this.init();
}

init() {
    this.$timeout(() => {
        if (!this.initialized) {
            if (window.CleanKeen) {
                this.keen = new CleanKeen(this.config);
                this.initialized = true;
            } else {
                this.init();
            }
        }
    }, 500)
}

makeQuery(type, settings, callback) {
    CleanKeen.ready(() => {
        callback(new CleanKeen.Query(type, settings));
    })
}

makeAndRenderQuery(type, querySettings, chartSettings) {
    this.makeQuery(type, querySettings, (query) => {
        console.log(query);
        console.log(type, querySettings, chartSettings);
        let chart = new CleanKeen.Dataviz()
            .el(document.getElementById(chartSettings.elementId))
            .chartType(chartSettings.chartType)
            .prepare();

        this.keen.run(query, function(err, res) {
            if (err) {
                // Display the API error
                chart.error(err.message);
            } else {
                // Handle the response
                chart
                    .parseRequest(this)
                    .title(chartSettings.title)
                    .render();
            }
        })
        // Re-run and refresh every 15 minutes...
        setInterval(() => {
            query.refresh();
        }, 1000 * 60 * 15);
    })
}


}

Обратите внимание, что this.config устанавливается в функции углового конфигурирования, которая получает ключи от нашего бэкэнда, проверяется на правильность и заполнение.

Значения, переданные в makeAndRenderQuery соответственно:

тип: count

querySettings: {type: "count", event_collection: "Store Viewed", timeframe: "this_14_days", interval: "daily"}

настройки диаграммы: {title: "Store Views (past 14 days)", chartType: "columnchart", elementId: "4feb70fe-f1c1-4a74-9fbe-b2d0d0f9cff3"}

Фактический острый запрос, который возвращается в консоли:

При просмотре страницы все, что я вижу, это:

Любая помощь будет с благодарностью

1 ответ

Я скопировал твой код, и у меня все отлично работает. Не могли бы вы поделиться дополнительной информацией об ответе от API? Это 200 нормально с JSON внутри, или что-то другое?

Правильный ответ должен выглядеть так

{"result": [{"value": 123, "timeframe": {"start": "2018-04-28T07:00:00.000Z", "end": "2018-04-29T07:00:00.000Z"}}, {"value": 0, "timeframe": {"start": "2018-04-29T07:00:00.000Z", "end": "2018-04-30T07:00:00.000Z"}} ]}
Другие вопросы по тегам