async / await возвращаемое значение и odering - PullRequest
0 голосов
/ 12 сентября 2018

Если у меня есть нижеуказанная асинхронная функция

async fn(){   
    await fn1() // build an updated index from the database

    let res2 = await fn2() // query the database index
        res2 = await fn3(res2) // do something with the index, then update the database

    await fn1() // build an updated index from the database again, but we don't need the new index
    return res2
}

В вышеуказанной настройке

  • Я хочу, чтобы поиск в базе данных был быстрым, поэтому я строю и индексирую для его поиска.

  • После создания индекса я запрашиваю базу данных (недавно созданный индекс)

  • Затем извлеките некоторые данные, используя этот индекс, и, в зависимости от результата, я добавлю несколько строк в базу данных.
  • После этого мне нужен результат вышеприведенного запроса, и я мог бы просто завершить выполнение кода и вернуть результат, но мне нужно оставить индекс базы данных актуальным, поэтому я перестраиваю индекс снова, но на этот раз мне не нужны результаты.

Как бы я структурировал вышеуказанную асинхронную функцию так, чтобы она была максимально оптимизирована и сократила общее время выполнения.

Я погуглил несколько примеров, которые дали следующий код:

freecodecamp

  const pizzaPromise = selectPizza()
  const drinkPromise = selectDrink()
  await pizzaPromise
  await drinkPromise

Не могу сказать, имеет ли смысл приведенный выше код? Разве это не просто a-signing от async function до constant value, тогда await-ing это значение?

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