promise兼容浏览器问题
生活随笔
收集整理的這篇文章主要介紹了
promise兼容浏览器问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、兼容ES6問題
1、在項目中使用到了ES6的Promise對象,代碼在谷歌瀏覽器中正常運行,而在360瀏覽器下的兼容模式下,IE內核是不支持Promise的。
2、通過can i use網站https://caniuse.com/)查到的ES6 promise的支持情況
?
3、要是在項目中使用Promsie對象,解決方法是使用第三方插件bluebird.js(github地址:https://github.com/petkaantonov/bluebird)
4、總結:bluebird中對ES6的原生Promise進行了封裝,解決了瀏覽器兼容性問題
二、兼容IE內核的瀏覽器
引入? ?<script src = "https://cdn.polyfill.io/v2/polyfill.min.js"></script>
? 或? ? ?<script type="text/javascript" src = "https://cdn.polyfill.io/v2/polyfill.min.js?features=es6"></script>
function menuType(){menuA = this;var promise = new Promise(function(resolve, reject){wilddog.sync().ref('').orderByKey().once('value', function (snapshot) {var list = snapshot.val();$("#leftNav nav").empty();var html = "";$.each(list, function (i, n) {menuA.menuArr.push(i);menuA.contentArr.push(n.total);html += "<span class='fenlei' title='" + n.title + "' value="+i+">" + n.title + "</span>";})$("#leftNav nav").html(html); resolve(menuArr);});});return promise;} menuType().then(function(menuArr){ // 視頻查詢全部 videoAll(); }) async function videoAll() {// 專家推薦視頻-------------------------------start$("#expert").empty();wilddog.sync().ref('').orderByChild('update_time').limitToLast(homepagesize).on("child_added", function (recommenddata) {let n = recommenddata.val();let i = recommenddata.key();var rechtml = "";rechtml += '<div class="flex-box" clickhref="'+ i + '" value="' + i + '"><span class="preview-box"><i class="icon icon-video-play"></i><img src="http://' + n.thumbnail + '" /></span>'+'<h4 class="video-title">' + n.description + '</h4>'+'<span class="corner">會員免費</span><span class="look">'+'<i class="icon icon-eye"></i>'+ n.clickamount + '人學過</span></div>';$("#expert").prepend(rechtml);});// 專家推薦視頻--------------------------------end// 普通視頻------------------------------------startvar menulength = menuArr.length;$(".djt").empty();for (var j=0; j<menulength; j++){// 找到分類節(jié)點名稱mtype = menuArr[j];var cnum = await countnum(mtype); // 普通視頻獲取details(mtype,cnum)}}三、項目開發(fā)環(huán)境(低版本瀏覽器中的兼容)
1. 先下載依賴,這個不用多說
npm i es6-promise --save-dev2. 在 /src/main.js 中引入?es6-promise 包,并使用
import promise from 'es6-promise';// 兼容 Promise promise.polyfill();?
?
總結
以上是生活随笔為你收集整理的promise兼容浏览器问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用python做时间序列预测十:时间序列
- 下一篇: 2017年html5行业报告,云适配发布