Проблема с обещанием Sweetalert

Искал, но не нашел ответа.

У меня проблема с Promise().

Использовали Sweetalert, поэтому создали скрипт:

<button onclick="showAlert();">some button</button>
<script> 
/**
 * @constuctor
*/
function Obj() { };

/**
 * @method getInst
 * @param arguments
 */
Obj.prototype.getInst = function () {
  swal.apply(this, arguments);
};

/**
 * @instance
 */
var newInst = new Obj();

function showAlert() {
  newInst.getInst({
    title: "Good job!",
    text: "You clicked the button!",
    icon: "success"
  });
};

и применение аргументов к объекту swal работает правильно. Однако применение обратного вызова, работающего против промисов (так работает Sweetalert), не может быть привязано к объекту и не работает:

function showAlert() {
  newInst.getInst("Click on either the button or outside the modal.")
  .then((value) => {
  swal(`The returned value is: ${value}`);
});
};

Спасибо за ответ.


person Raphael    schedule 08.01.2018    source источник
comment
Чтобы это работало, ваш getInst должен возвращать новый Promise.   -  person Chris G    schedule 08.01.2018
comment
В вашем методе getInst отсутствует оператор return.   -  person Bergi    schedule 08.01.2018
comment
Да, тоже заметил это, но добавление этого не решило проблему.   -  person Raphael    schedule 08.01.2018


Ответы (1)


Хорошо, сделали это.

если кому-то интересно, все, что вам нужно сделать, это передать объект Sweetalert напрямую конструктору:

Obj.prototype.getInst = function () {
  swal(opts);
};
person Raphael    schedule 09.01.2018