Попытка написания Google Cloud Function для записи в Google Sheet с помощью node.js - PullRequest
0 голосов
/ 15 октября 2019

Я только что перешел из скрипта Google Apps в node.js и облачные функции Google, и есть часть кода из существующего поста, который я не понимаю.

В этом посте: Как использовать API листов Google в облачной функции Google , @domdomegg перечислил пример кода, который вызывает API листов Google из облачной функции Google. У меня есть этот код, работающий в облачной функции Google.

Однако я не понимаю какой-то конкретный сегмент кода:

    // This just prints out all Worksheet names as an example
    .then(({ data: { sheets } }) => {
      res.status(200).send({ sheets });

Это бит data: { sheets }, который яне понимаюЯ думаю, что именно здесь мне нужно поместить свой код для записи в Google Sheet, но для меня это немного загадка. Мне достаточно нуба, что я пока не могу оставить комментарий к исходному сообщению. Любая помощь для новичка?

1 Ответ

3 голосов
/ 15 октября 2019

Это действительно какой-то сложный (хитрый) синтаксис ... давайте посмотрим, не сможем ли мы его разобрать.

Во-первых, .then(...). Это то, что называется, когда обещание выполнено. Параметр для then является функцией.

В этом примере эта функция:

({data: {sheets}}) => {
   res.status(200).send({sheets});
}

, если это сбивает с толку, ее можно переписать как:

function({data: {sheets}}) {
   res.status(200).send({sheets});
}

Но что это за странность параметров функции? Мы привыкли видеть функции вида:

function(a, b, c) {
 ...
}

, где a, b и c будут параметрами. В нашем случае параметры выглядят как {data: {sheets}} ... как мы можем это проанализировать?

Ответом является концепция ECMAScript6, называемая * Destructuring Assignment`. Смотрите здесь:

http://es6 -features.org / # ObjectMatchingDeepMatching

кажется, что:

function({data: {sheets}}) {
   ...
}

логически эквивалентно:

function(_tmp) {
   let sheets = _tmp.data.sheets;
   ...
}

и наконец ...

send({sheets})

логически:

send({sheets: sheets})

Как всегда, я могу ошибаться, поэтому давайте посмотрим на комментарии, и я могу либообновите или удалите этот ответ на основе дальнейших отзывов.

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