AMD异步加载机制,特点是:依赖前置, 先把模块需要用到的依赖全部加载
本质是利用promise实现异步加载
需要 用到 这篇文章实现 的 模块加载器 __load
https://blog.csdn.net/weixin_38407447/article/details/117402939?spm=1001.2014.3001.5501
新建amd.js文件
//默认配置
const defaultOpts = {
paths:{}
}
gb.rj = {}
rj.config = (options)=>Object.assign(defaultOpts,options)
//保存定义的模块和依赖
const def = new Map()
// define(id?,deps?,callback)
function define(...arr){
let callback = arr.pop()
let [ id, deps ] = arr
def.set(id,{id,deps,callback})
}
//根据模块名称生成资源请求链接
var getUrl = (module)=>{
let a = location.pathname
return a.slice(0,a.lastIndexOf('/'))+'/'+module+'.js'
}
//加载模块
function require(deps,callback){
return new Promise(async (resolve,reject)=