Тип возвращаемого значения асинхронных c стрелочных функций - PullRequest
0 голосов
/ 09 мая 2020

Я пытаюсь использовать асинхронную c стрелочную функцию в качестве обратного вызова для другой функции. Здесь значение, возвращаемое функцией стрелки, не имеет значения, поэтому я ничего не возвращаю. Но поскольку я использую его как функцию asyn c, мне нужно возвращать значение или Promise.resolve («somevalue») из функции стрелки.

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

const ack = async (result) => {
  await this.service.updateObject(result);
} // No return is given

Метод ack называется обратным вызовом другой функции.

1 Ответ

2 голосов
/ 09 мая 2020

Нет, то, что вы делаете сейчас, прекрасно. async функции автоматически возвращают Promises, которые разрешают все, что return получено из функции. Если ничего не возвращается явно, то Promise преобразуется в undefined, точно так же, как вызов функции, которая ничего не возвращает, приводит к возврату undefined.

Итак, если вам просто нужна функция do something, но вам не нужен возможный результат для использования потребителем функции, не стесняйтесь использовать await внутри функции, ничего не возвращая. Это распространенный образец.

...