Ты прав. Это функция со стрелкой (без сопровождающего блока), которая «возвращает» выражение присваивания - фактически выполняет присваивание значения data
для myVariable
и возвращает правую часть, хотя в этом случае это может не использоваться. .
В более упрощенном случае:
let foo = 3;
function foobar(callback) {
const result = callback(5); //call callback with 5 as argument
console.log(result); //5
}
foobar(five => foo = five); //assigns 5 to foo
console.log(foo); //5
Это обычно не самый читаемый вариант, и ваш вопрос это подтверждает. Я бы порекомендовал добавить такой блок (если вы не собираетесь возвращать правое значение):
myPromise.then(data => {
myVariable = data;
});
В этом случае нет неявного возврата правой части выражения присваивания, что делает намерение более ясным. Кроме того, назначения, такие как то, что вы делаете правильно с тем, что я предполагаю для асинхронного обещания, не приветствуются.
Возможно, обратите внимание на async / await или другие новые функции ES, чтобы иметь дело с асинхронным кодом, отличным от использования переменных, которые могут привести к некоторым проблемам, если не используются правильно .