вернуть обещание против просто ждать этого обещания - PullRequest
0 голосов
/ 01 декабря 2018

Мне интересно, в каком коде это имеет больше смысла, есть ли смысл возвращать обещание, как это, если обещание не содержит значения:

async function action () {
  // let's say there are many such lines with await before returning
  await asyncFunction()

  // will return Promise that does not contain any value!
  return anotherAsyncFunction()
}

// action().then(myAnotherAction)

Или это было бы разумнее сделатьИтак:

async function action () {
  await asyncFunction()


  await anotherAsyncFunction()
}

// const result = await action()

Первый вариант - использовать только при возврате какого-либо значения?

В противном случае проще использовать второй вариант, потому что проще добавить другое действие с помощью "жду "до конца функции?

async function action () {
  await asyncFunction()

  await anotherAsyncFunction()
  // easy to add another function, no need to touch "return"
  await andAnotherAsyncFunction()
}

1 Ответ

0 голосов
/ 01 декабря 2018

Если вы планируете, чтобы ваша функция не возвращала никакого значения (Promise<void>), я бы порекомендовал не использовать оператор return.Вы можете использовать return anotherAsyncFunction() только в том случае, если вы хотите всегда возвращать тот же результат, что и anotherAsyncFunction, независимо от того, что это было или изменится ли он в будущем.

Обратите внимание, что это одинаково для синхронных функций, еслиВы оставляете await за кадром, и вам нужно принять такое же решение: return something против something.То, что «что-то» может содержать await, на самом деле не имеет значения, даже если вы опускаете await, когда решаете добавить return.

...