163music-api
Version:
NeteaseMusicApi's TypeScript Version
35 lines • 1.24 kB
text/typescript
import { request, RequestOptions } from 'http';
import { getRequestOption } from '../util';
interface artistAlbumsOption {
offset: number;
limit: number;
}
export const artistAlbums = (
id: number, // 歌手ID
callback?: (res) => void, // 回调函数
otherOptions: artistAlbumsOption = { limit: 10, offset: 0 }
): Promise<any> => {
let reqOption: RequestOptions = getRequestOption(`/api/artist/albums/${id}?offset=${otherOptions.offset}&limit=${otherOptions.limit}`);
return new Promise((resolve, reject) => {
let req = request(reqOption, (res) => {
if (res.statusCode == 200) {
let bufs = [];
res.on('data', (chunk) => {
bufs.push(chunk);
});
res.on('end', () => {
let result = Buffer.concat(bufs);
let info = JSON.parse(result.toString());
callback && callback(info);
resolve(info);
});
} else {
reject(res.statusCode);
}
});
req.on('error', (err) => {
reject(err);
});
req.end();
});
}