Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | 1x 1x 1x 1x 1x 1x 4x 4x 4x 4x 1x 1x 4x 4x 1x 3x 1x 2x 2x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | var $assign = require('../obj/assign'); var $get = require('../obj/get'); var $getScript = require('./getScript'); var propName = 'SPORE_SDK_PROMISE'; var cache = null; /** * sdk 加载统一封装 * - 多次调用不会发起重复请求 * @method io/loadSdk * @param {Object} options 选项 * @param {String} options.name sdk 全局变量名称 * @param {String} options.url script 地址 * @param {String} [options.charset='utf-8'] script 编码 * @param {Function} [options.onLoad] script 加载完成的回调函数 * @example * var $loadSdk = require('@spore-ui/kit/packages/io/loadSdk'); * $loadSdk({ * name: 'TencentCaptcha', * url: 'https://ssl.captcha.qq.com/TCaptcha.js' * }).then(TencentCaptcha => {}) */ var loadSdk = function (options) { var conf = $assign({ name: '', url: '', charset: 'utf-8', wtop: window, }, options); Eif (typeof conf.wtop !== 'undefined') { cache = conf.wtop[propName]; if (!cache) { cache = {}; conf.wtop[propName] = cache; } } else { cache = {}; } var name = conf.name; if (!name) { return Promise.reject(new Error('Require parameter: options.name')); } if (!conf.url) { return Promise.reject(new Error('Require parameter: options.url')); } var pm = cache[name]; if (pm) { Iif (pm.sdk) { return Promise.resolve(pm.sdk); } return pm; } pm = new Promise(function (resolve) { $getScript({ src: conf.url, charset: conf.charset, wtop: conf.wtop, onLoad: function () { var sdk = $get(conf.wtop, name); pm.sdk = sdk; resolve(sdk); }, }); }); cache[name] = pm; return pm; }; module.exports = loadSdk; |