Должен ли я обернуть настройки меню выбора в обещание? - PullRequest
0 голосов
/ 29 августа 2018

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

Создание этой разметки занимает некоторое время, потому что множество строк объединяются. Пока что в конце этой функции ничего не возвращается, потому что в конечном итоге разметка устанавливается как «побочный эффект» функции через $('#someID').html(data).

Теперь важно, чтобы эта функция завершила свою работу до вызова других функций. Поэтому я хотел бы сделать все это внутри обещания, а затем вернуть переменную, содержащую разметку, с помощью «разрешения». Когда он был возвращен, я хотел бы установить разметку для соответствующего элемента через $('#someID').html(data).

Мне просто интересно, разумно ли это делать. Потому что я на самом деле не знаю, может ли из-за какой-то проблемы синхронизации разметка для вставки в элемент select действительно большая. Может ли простая вставка разметки после того, как она уже была создана, занимать значительную часть времени? Должен ли я поэтому обернуть это в какое-то обещание? И если так, как я могу это сделать? Потому что установка разметки для элемента HTML на самом деле ничего не возвращает.

Чтобы проиллюстрировать мое объяснение, вот код, показывающий, к чему я сейчас стремлюсь:

function createMarkup(dataFromDatabase){
  return new Promise (resolve => {
  var markup = //create the markup according to data from database
  resolve(markup)
  }
}

async function someStuff(data){
//some code
var markup = await createMarkup(data)
$('#someID').html(markup)
//some code which mustn't run before markup has been created and set to the
//according element
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...