未验证 提交 9647efa0 编写于 作者: R Rob Lourens 提交者: GitHub

Merge pull request #54840 from Microsoft/roblou/fixCancelSearch

Fix search cancellation
......@@ -260,7 +260,8 @@ export class ChannelClient implements IChannelClient, IDisposable {
let uninitializedPromise: TPromise<any> | null = null;
const emitter = new Emitter<any>({
onFirstListenerAdd: () => {
uninitializedPromise = this.whenInitialized().then(() => {
uninitializedPromise = this.whenInitialized();
uninitializedPromise.then(() => {
uninitializedPromise = null;
this.send(request.raw);
});
......
......@@ -150,6 +150,7 @@ export class Client implements IChannelClient, IDisposable {
}
this.activeRequests.splice(this.activeRequests.indexOf(listener), 1);
listener.dispose();
if (this.activeRequests.length === 0) {
this.disposeDelayer.trigger(() => this.disposeClient());
......
......@@ -376,9 +376,10 @@ export class DiskSearch implements ISearchResultProvider {
}
public static collectResultsFromEvent(event: Event<ISerializedSearchProgressItem | ISerializedSearchComplete>): PPromise<ISearchComplete, ISearchProgressItem> {
let listener: IDisposable;
const promise = new PPromise<ISerializedSearchSuccess, ISerializedSearchProgressItem>((c, e, p) => {
setTimeout(() => {
const listener = event(ev => {
listener = event(ev => {
if (isSerializedSearchComplete(ev)) {
if (isSerializedSearchSuccess(ev)) {
c(ev);
......@@ -391,7 +392,7 @@ export class DiskSearch implements ISearchResultProvider {
}
});
}, 0);
});
}, () => listener.dispose());
return DiskSearch.collectResults(promise);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册