Как получить несколько вызовов getJSON / API с помощью таблицы Web Data Connector - PullRequest
0 голосов
/ 18 октября 2019

Я устанавливаю веб-соединитель данных Tableau, но я хочу сделать 2 или более вызовов API для загрузки в одну схему. Как мне это сделать?

Я пытался переключиться на обещания , обычные циклы for-each и несколько других методов, но qtwebkit и обычный javascript не работают одинаково. В таблице есть поток , но он никогда не решался, и решения там, похоже, не работают. Мой текущий код для моей функции getData приведен ниже (моя схема, кажется, работает нормально)

myConnector.getData = function (table, doneCallback) {
    var query_data = JSON.parse(tableau.connectionData);
    var symbol_list = query_data.symbol_list.split(",");
    var tasks = [];
    // This does the asynchronization
    $.each(symbol_list, function (index, symbol) {
        var apicall = create_apicall(query_data, symbol);
        var task = $.getJSON(apicall, function (resp) {
            var tableData = [];
            var table_data = map_data_to_schema(query_data, resp, symbol);
            table.appendRows(table_data);
            doneCallback();
        })
        tasks.push(task);
        $.when(tasks).then(function () {
            // do nothing
        })
    })
};

Когда я запускаю его в симуляторе, он работает нормально, выполняет все вызовы API и корректно обновляет их в таблицах. (симулятор скачан из таблицы SDK). Тем не менее, когда я запускаю его в tableau, он просто возвращает первый вызов API, который я ему передал, вместо того, чтобы сколько я его пропустил.

create_apicall просто возвращает вызов API.

Любая помощь приветствуется.

...