在不使用取消订阅的情况下停止Angular HTTP请求

时间:2017-09-14 19:49:28

标签: javascript angular typescript

我正在创建一个音乐播放器但是当用户跳过一首歌时,它应该停止当前下载的歌曲并继续前进到下一首歌曲。我正在使用异步角度http函数,它可以解析为promise。我不能使用subscribe()或unsubcribe(),因为这只会破坏功能

这是我的代码:

private async downloadSong(track: Track): Promise<string> {
    if(!isNullOrUndefined(this.request))
      console.log(this.request) // Returns: Response {_body: Blob, status: 200, ok: true, statusText: "OK", headers: Headers, …}

    this._downloadingSong = true;
    this.request = await this.http.get(track.source, {responseType: ResponseContentType.Blob}).toPromise();
    this._downloadingSong = false;
    return URL.createObjectURL(this.request.blob());
}

1 个答案:

答案 0 :(得分:0)

您应该使用takeUntil运算符来停止可观察的