为啥Promise.resolve的lyric还要取result.lyric

来源:5-11 播放器 歌词相关逻辑开发(01)

迷失的小麦

2021-06-29

const lyricMap = {}

export function getLyric(song) {
  if (song.lyric) {
    return Promise.resolve(song.lyric)
  }
  const mid = song.mid
  const lyric = lyricMap[mid]
  if (lyric) {
    return Promise.resolve(lyric)
  }

  return get('/api/getLyric', {
    mid
  }).then((result) => {
    const lyric = result ? result.lyric : '[00:00:00]该歌曲暂时无法获取歌词'
    //这里result如果有值就会取result.lyric并返回,而Promise.resolve(lyric)里面的值是可以直接用的,处理过得了,为啥这里还要无差别的处理
    lyricMap[mid] = lyric
    return lyric
  })
}
写回答

1回答

ustbhuangyi

2021-06-30

//img.mukewang.com/szimg/60db4a7009d9802613220450.jpg
因为后端返回的数据结构,就是一个对象结构

0
2
ustbhuangyi
回复
迷失的小麦
第一次获取歌曲歌词的时候,缓存里是没有值的啊,所以要发请求获取
2021-06-30
共2条回复

Vue3开发企业级音乐Web App 明星讲师带你学大厂代码

慕课网明星讲师黄轶深度讲解 Vue3.0 ,提升的不止是Vue代码能力

2223 学习 · 1002 问题

查看课程