В документации TableTop (буквально в readme репо ), с simpleSheet: true
вы передаете своей функции обратного вызова массив строк с первого листа рабочей книги.
Вашcode:
callback: (data, tabletop) => {
data.forEach(d =>
, таким образом, инструктирует каждую строку на этом листе обрабатываться.
Чтобы вызвать функцию только для одной строки за выполнение callback
, вам необходимо определить некоторую другую областьпеременная - давайте назовем это rowIndex
.Вы должны инициализировать эту переменную, когда ваш бот-сервер загружается, а затем увеличить и проверить границы в callback
.
var rowIndex = 0;
var link = () => {
Tabletop.init({
key: spreadsheetUrl,
callback(data, tabletop) {
if (!data.length) { return; } // Guard against empty spreadsheet
// Wrap around here, in case new messages were added or deleted since the last invocation.
rowIndex = rowIndex % data.length;
var d = data[rowIndex];
/**
* Code to call for just this array element `d` (read: row)
*/
// Increment the state variable so next call is a different row.
++rowIndex;
}, // End callback definition
simpleSheet: true
});
};