jsonp的promise封裝
/*
@url 請求地址
@超時時間
@return promise
*/
var getJSONP = function(url, overtime) {
var promise = new Promise(function(resolve, reject) {
//註冊回撥函式
var callbackName = 'jsonp'+Math.ceil(Math.random() * 1000000);
window[callbackName] = function(json) {
head.removeChild(script); //移除scipt標籤
clearTimeout(script.timer); //清除超時計時器
window[callbackName] = null;
resolve(json); //成功處理
}
//生成scipt標籤
var script = document.createElement('script');
script.src = url;
var head = document.getElementsByTagName('head')[0];
head.appendChild(script);
//錯誤處理
script.onerror = function(){
if(window[callbackName] == null){
reject('timeout'); //超時處理
} else{
reject('faild'); //失敗處理
window[callbackName] = null;
head.removeChild(script);
}
}
//超時判斷
script.timer = setTimeout(function () {
window[callbackName] = null;
head.removeChild(script);
}, overtime);
});
return promise;
};
相關文章
- jsonp promise 封裝JSONPromise封裝
- jsonp 封裝思想JSON封裝
- jsonp跨域封裝JSON跨域封裝
- JSONP 通用函式封裝JSON函式封裝
- 易理解的Promise封裝Promise封裝
- 簡單封裝get和jsonp封裝JSON
- 分享:用promise封裝ajaxPromise封裝
- promise封裝wx.request()Promise封裝
- 用promise封裝一個ajaxPromise封裝
- 使用promise封裝wx.request()Promise封裝
- 原生es5封裝的Promise物件封裝Promise物件
- 應用Promise封裝Ajax實踐Promise封裝
- 小程式API進行promise封裝APIPromise封裝
- 50行不到實現Promise化的jsonpPromiseJSON
- 基於Promise實現對Ajax的簡單封裝Promise封裝
- 小程式非同步介面封裝,使用Promise,改良後的。非同步封裝Promise
- jsonp 的原理和採用 Promise API 的實現JSONPromiseAPI
- 原生es6封裝一個Promise物件封裝Promise物件
- 使用Promise封裝fetch庫(增刪改查)Promise封裝
- ES6(四)用Promise封裝一下IndexedDBPromise封裝Index
- 使用promise封裝jquery的ajax來實現async和await方式Promise封裝jQueryAI
- ES6中Promise 承諾物件封裝非同步操作解析Promise物件封裝非同步
- 【JavaScript】通過封裝自己的JSONP解決瀏覽器的跨域問題(Ajax跨域)JavaScript封裝JSON瀏覽器跨域
- ES6 Promise 應用: 回撥函式方法封裝成 Promise + async/await 同步化Promise函式封裝AI
- 【封裝小技巧】is 系列方法的封裝封裝
- 【JavaScript框架封裝】公共框架的封裝JavaScript框架封裝
- 【封裝那些事】 缺失封裝封裝
- Dapper的封裝、二次封裝、官方擴充套件包封裝,以及ADO.NET原生封裝APP封裝套件
- 【封裝小技巧】列表處理函式的封裝封裝函式
- 封裝封裝
- jquery ajax 的封裝jQuery封裝
- vue3 專用 indexedDB 封裝庫,基於Promise告別回撥地獄VueIndex封裝Promise
- 【封裝小技巧】數字處理函式的封裝封裝函式
- 封裝JDBC—非框架開發必備的封裝類封裝JDBC框架
- Sqlite封裝1-基本封裝-SqliteToolSQLite封裝
- JSONP的例子JSON
- Flutter 封裝:富文字 RichText 極簡封裝Flutter封裝
- 通過「百度搜尋」來學習Jsonp,Promise,bind,apply,debounceJSONPromiseAPP