Как использовать JScript Promises в проекте MVC - PullRequest
0 голосов
/ 01 мая 2019

В настоящее время я использую SweetAlert в моем проекте MVC , и он отлично работает. Тем не менее, мне нужно добавить несколько кнопок радио. Эта функция является частью SweetAlert версии 2 .

Теперь, если я сделаю следующее без слова await :

   function SampleCode() {
        var formValues = await swal.fire({
            title: 'Multiple inputs',
            html:
                '<input id="swal-input1">' +
                '<input type="checkbox" id="swal-input2" class="swal2-input">',
            focusConfirm: false,
            preConfirm: () => {
                return [
                    document.getElementById('swal-input1').value,
                    document.getElementById('swal-input2').value
                ];
            }
        });

        //Swal.fire(JSON.stringify(formValues));
    }

Тогда всплывет диалоговое окно. Но если я раскомментирую второй SweetAlert, конечно, он не сработает, так как мне нужно использовать обещания. Как мне сделать это в приведенной выше функции, которая находится в файле .cshtml в проекте MVC? Спасибо за любую помощь.

1 Ответ

1 голос
/ 02 мая 2019

Из документации (раздел, в котором говорится, что «несколько входов не поддерживаются, вы можете достичь их, используя параметры html и preConfirm ...»), вот CodePen, показывающий что-то ближе к тому, что ядумаю, что вы пытаетесь сделать.Похоже, вы забыли объявить внешнюю функцию асинхронной, что, вероятно, является причиной вашей ошибки: https://codepen.io/anon/pen/gyNYep?&editable=true

Для справки, JavaScript должен выглядеть следующим образом:

(async function getFormValues () {
const {value: formValues} = await Swal.fire({
  title: 'Multiple inputs',
  html:
    '<input id="swal-input1" class="swal2-input">' +
    '<input id="swal-input2" class="swal2-input">',
  focusConfirm: false,
  preConfirm: () => {
    return [
      document.getElementById('swal-input1').value,
      document.getElementById('swal-input2').value
    ]
  }
})

if (formValues) {
  Swal.fire(JSON.stringify(formValues))
}
})()
...