收藏
回答

多次执行 loadFontFace global:true 只触发一次回调

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug loadFontFace 微信iOS客户端 IOS 17.4 3.14.1
const fontList = [{source: 'https://..../name1.ttf', family: 'name1'}, {
  source: 'https://..../name2.ttf', family: 'name1'
}]

const loadFontFromNetwork = (family: string, source: string): Promise<void> => {
  console.log('loadFontFromNetwork-start', family)
  return new Promise((resolve, reject) => {
    uni.loadFontFace({
      family,
      global: true,
      source: getLoadFontSource(source),
      success: () => {
        console.log('loadFontFace-success', family)
        resolve()
      },
      fail: (err) => {
        console.log('loadFontFace-fail', family, err)
        reject(new Error('加载字体失败'))
      },
      complete: () => {
        console.log('loadFontFace-complete', family)
      }
    })
  })
}

const fontPromises: Promise<void>[] = []
fontList.forEach((font) => {
  const [family] = font.split('/').pop()?.split('.').slice(0, -1) || []
  fontPromises.push(loadFontWithCache(family, font, handleProgress))
})
await Promise.all(fontPromises)

多个字体注入到全局,只有最后一个name2.ttf触发了回调函数。实际上都加载到全局了,只是没触发回调。不触发回调如何解决?


最后一次编辑于  01-28
回答关注问题邀请回答
收藏

1 个回答

  • 智能回答 智能回答 本次回答由AI生成
    01-27
    有用
    回复
登录 后发表内容