IE瀏覽器報Promise未定義


用vue-cli做的項目,用了promise,結果IE下報promise未定義,甚至在比較老的andriod手機瀏覽器上會顯示空白頁面,解決方案如下:

首先安裝:babel-polyfill 

npm install babel-polyfill --save

然后引入:babel-polyfill 

在mian.js中直接引入

import 'babel-polyfill'

或者在vue-cli2中,引入如下在build目錄下,webpack.base.conf.js里

entry: {

    app: ["babel-polyfill", "./src/main.js"]

  },

即可。

【說明】vue-cli項目里默認有babel轉碼器,但是:

Babel 默認只轉換新的 JavaScript 句法(syntax),而不轉換新的 API,比如Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise等全局對象,以及一些定義在全局對象上的方法(比如Object.assign)都不會轉碼。

舉例來說,ES6 在Array對象上新增了Array.from方法。Babel 就不會轉碼這個方法。如果想讓這個方法運行,必須使用babel-polyfill,為當前環境提供一個墊片。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM