SweetAlert2在IE 11上不起作用,未定义Promise

我正在使用SweetAlert2并在IE 11上引发异常:


此程序包需要一个承诺库,请包括一个垫片,以使其能够在这个浏览器中(参见: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)


因为IE 11不支持Promises,所以需要手动添加。


我像这样使用bluebird:


const Promise = require('bluebird');

const Swal = require('sweetalert2');


Swal.fire(...)

...

但是,sweetalert的支票还是没有通过:


..

  if (typeof Promise === 'undefined') {

    error('This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)');

  }

..

如何解决?谢谢。


达令说
浏览 333回答 2
2回答

桃花长相依

您可以使用以下方法修复它:window.Promise = require('bluebird');这会将Promise加载为窗口的全局变量,而不是像使用那样加载文件const。我不确定您的文件结构如何,但是如果您有一个加载所有依赖项的文件,则只需将上面的行添加到将在其他脚本之前调用的脚本即可。例如:// bootstrap.jswindow.Promise = require('bluebird');window.Swal = require('sweetalert2');// app.jsrequire('./bootstrap');Swal.fire(...);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript