直播电商源码,用异步加成打造更高性能

直播电商源码,用异步加成打造更高性能

单线程和异步

  • js是单线程语言,同时只能做一件事
  • 浏览器和node已支持js启动进程,如Web Worker
  • js和DOM渲染共用同一个线程,因为js可修改DOM结构
  • 遇到等待(网络请求,定时任务)不能卡住,所以需要异步
  • 同步会阻塞代码执行,异步不会阻塞代码执行
  • 应用场景——
    (1) 网络请求,如ajax图片加载
    (2)定时任务,如setTimeout
复制代码
// 异步 (callback 回调函数)
console.log(100)
setTimeout(() => {
    console.log(200)
}, 1000)
console.log(300)
console.log(400)

// 同步
console.log(100)
alert(200)
console.log(300)
复制代码

 

Promise

复制代码
//手写promise加载一张图片
function loadImg(src) {
    const p = new Promise(
        (resolve, reject) => {
            const img = document.createElement('img')
            img.onload = () => {
                resolve(img)
            }
            img.onerror = () => {
                const err = new Error(`图片加载失败 ${src}`)
                reject(err)
            }
            img.src = src
        }
    )
    return p
}

const url = 'https://img.mukewang.com/5a9fc8070001a82402060220-140-140.jpg'
loadImg(url).then(img => {
    console.log(img.width)
    return img
}).then(img => {
    console.log(img.height)
}).catch(ex => console.error(ex))

const url1 = 'https://img.mukewang.com/5a9fc8070001a82402060220-140-140.jpg'
const url2 = 'https://img3.mukewang.com/5a9fc8070001a82402060220-100-100.jpg'

loadImg(url1).then(img1 => {
    console.log(img1.width)
    return img1 // 普通对象
}).then(img1 => {
    console.log(img1.height)
    return loadImg(url2) // promise 实例
}).then(img2 => {
    console.log(img2.width)
    return img2
}).then(img2 => {
    console.log(img2.height)
}).catch(ex => console.error(ex))
复制代码

 

以上就是直播电商源码,用异步加成打造更高性能, 更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2023-08-24 直播源码开发,Android判断网络是否可用
2023-08-24 直播商城源码,JS Date配置日期格式化
2023-08-24 直播系统开发,springboot指定时间触发定时任务
2022-08-24 直播网站程序源码,清除app data以及获取图标
2022-08-24 直播网站源码,Launcher3 删除主页搜索框
2022-08-24 直播电商平台开发,android cardview 取消阴影,高度
2021-08-24 小视频app源码Android OpenGL ES 实现传送带特效
点击右上角即可分享
微信分享提示