Сценарий Google Apps - оператор IN на несколько минут - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь запустить последовательный код.Первое обновление должно происходить каждые 15 минут, второе - через 3 минуты после первого.

Приведенный ниже код запускается каждую минуту.

Однако в скрипте Google Apps оно никогда не работает.Есть идеи как это исправить?

Я только написал записку in для == и or.Это не выглядит прямо.

function update_per_1_min() {

var d = new Date();
var m = d.getMinutes();  

  var m = 16

  if(m in [1.0,16.0,31.0,46.0]){

    update_0()

  } else if (m in [4,19,34,49]) {

    update_1() 
  }
}

1 Ответ

0 голосов
/ 19 ноября 2018

in проверяет, является ли выражение свойством объекта. Массивы имеют такие свойства, как 0 для первого индекса, 1 для второго индекса и т. Д .:

const arr = ['foo', 'bar'];
console.log('foo' in arr);
console.log('0' in arr);

Свойства, конечно, не то же самое, что значения. Похоже, вы пытаетесь проверить, содержится ли в массиве значение , и в этом случае вы можете использовать .includes (если вы могли использовать ES6) или indexOf для GAS:

function update_per_1_min() {
  var d = new Date();
  var m = d.getMinutes();  
  if([1,16,31,46].indexOf(m) !== -1){
    update_0()
  } else if ([4,19,34,49].indexOf(m) !== -1) {
    update_1() 
  }
}

(обратите внимание, что конечные нули после чисел . не имеют смысла - не стесняйтесь опускать их полностью)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...