请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

看不懂修复歌曲混乱bug原理

//img1.sycdn.imooc.com//szimg/5a9bfb4500012be603560106.jpg

//img1.sycdn.imooc.com//szimg/5a9bfb450001458005820346.jpg

老师  这里你通过加

if (this.currentSong.lyric !== res) {
    return
}

修复了bug  但是如何修复的实在看不懂

看到老师有这么解释过

”因为获取歌词是一个异步过程,在获取的过程中如果切歌,那么 currentSong 会变化,那么 this.currentSong.lyric 就不等于返回的 res 了 “

我对获取歌词的过程的理解是  

currentSong执行了getLyric实例方法之后, currentSong 便有了lyric属性 ,同时将lyric给resolve出去 ,所以之后的then方法中的参数肯定是跟currentSong的lyric相等的

请老师指点一下我哪里理解错了

正在回答

1回答

ustbhuangyi 2018-03-04 22:14:06

不一定啊,这个 getLyric 是异步过程,在这个期间如果切换了歌曲,就不相等了

0 回复 有任何疑惑可以回复我~
  • 提问者 学东西要快 #1
    老师  如果快速切换两首歌
    那么产生了两次getLyric异步请求
    那么这两次异步请求不应该也遵循一个先后关系吗?
    前一首歌获取歌词逻辑走完再走下一首歌的逻辑这样
    回复 有任何疑惑可以回复我~ 2018-03-04 22:23:05
  • ustbhuangyi 回复 提问者 学东西要快 #2
    所以切换歌曲了,之前的异步就无效了啊
    回复 有任何疑惑可以回复我~ 2018-03-04 22:45:08
  • 提问者 学东西要快 #3
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-03-04 22:47:25
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信