# YHScriptLoader **Repository Path**: liuyonghu/yhscript-loader ## Basic Information - **Project Name**: YHScriptLoader - **Description**: YHScriptLoader - **Primary Language**: JavaScript - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-01-13 - **Last Updated**: 2022-06-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # yh-scriptloader ## 功能: 同步/异步加载 html \ 标签 ## 安装: ``` npm i yh-scriptloader --save ``` ## 用法: ### 1. 引入 ``` import { createLoaders } from "yh-scriptloader"; ``` ### 2. 创建 loaders ``` const mapjs = `https://webapi.amap.com/maps?v=2.0&key=${gaodekey}`; const mapUI = "https://webapi.amap.com/ui/1.1/main.js"; const srcs = [ [ { src: mapjs }, { src: mapUI } ] ]; const loaders = createLoaders(srcs); ``` ### 3. 加载回调 - 普通回调风格 ``` loaders.loading((res) => { if(res.loaded){ this.mapSetUp(); }else{ console.log(res); } }); ``` - Promise风格 ``` loaders .loading() .then((result) => { console.log("scriptloader - loading", result); }) .catch((err) => { console.log("scriptloader - loading", err); }); ``` ## API : ### 创建加载器 **createLoaders(parms)** - 返回类型 `YHLoaders` - parms(asyncArray) - Array.\ 最外层为 asyncArray - 里层为 syncArray 即: - asyncArray 中的所有单元为`异步`加载 - syncArray 中的所有单元为`同步`加载 #### 例如 使用异步加载 ``` const srcs = [ [{ src: mapjs }], [{ src: mapUI }] ]; ``` 使用同步加载 ``` const srcs = [ [ { src: mapjs }, { src: mapUI } ] ]; ``` ### 加载与回调 **.loading(callback)** | 序号 | 参数名称 | 类型 | | :---: | :------: | :------: | | 1 | callback | Function | ### 直接加载 **YHloading(parms)** | 序号 | 参数名称 | 类型 | | :---: | :------: | :----------------------------------------------------------: | | 1 | parms | Array.\ 同 [createLoaders\(parms\)](#创建加载器) | - 普通回调风格 ``` YHloading(srcs, () => { console.log("scriptloader - loading", window.AMap); }); ``` - Promise风格 ``` YHloading(srcs) .then((result) => { console.log("scriptloader - loading", result); }) .catch((err) => { console.log("scriptloader - loading", err); }); ```