Это действительно какой-то сложный (хитрый) синтаксис ... давайте посмотрим, не сможем ли мы его разобрать.
Во-первых, .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})
Как всегда, я могу ошибаться, поэтому давайте посмотрим на комментарии, и я могу либообновите или удалите этот ответ на основе дальнейших отзывов.