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触发了回调函数。实际上都加载到全局了,只是没触发回调。不触发回调如何解决?
