修复酷我源搜索提示、排行榜接口挂掉的问题

This commit is contained in:
lyswhut
2019-10-28 22:42:01 +08:00
parent 1bd8694262
commit 63a5f94a67
4 changed files with 54 additions and 9 deletions
+19 -4
View File
@@ -1,7 +1,6 @@
import { httpGet, cancelHttp } from '../../request'
import { formatPlayTime, decodeName } from '../../index'
import { formatSinger } from './util'
import { formatSinger, getToken, matchToken } from './util'
export default {
list: [
@@ -67,6 +66,8 @@ export default {
},
limit: 30,
token: null,
isGetingToken: false,
_cancelRequestObj: null,
_cancelPromiseCancelFn: null,
_cancelRequestObj2: null,
@@ -89,20 +90,34 @@ export default {
})
})
},
getData2(url) {
async getData2(url) {
if (this._cancelRequestObj2 != null) {
cancelHttp(this._cancelRequestObj2)
this._cancelPromiseCancelFn2(new Error('取消http请求'))
}
if (this.isGetingToken) return Promise.reject(new Error('正在获取token'))
let token = this.token
if (!token) {
this.isGetingToken = true
token = await getToken()
this.isGetingToken = false
}
return new Promise((resolve, reject) => {
this._cancelPromiseCancelFn2 = reject
this._cancelRequestObj2 = httpGet(url, (err, resp, body) => {
this._cancelRequestObj2 = httpGet(url, {
headers: {
Referer: 'http://www.kuwo.cn/',
csrf: token,
cookie: 'kw_token=' + token,
},
}, (err, resp, body) => {
this._cancelRequestObj2 = null
this._cancelPromiseCancelFn2 = null
if (err) {
console.log(err)
reject(err)
}
this.token = matchToken(resp.headers)
resolve(body)
})
})