Fixed #4384 add await on disconnect (#4389)

* Fixed #4384 add await on disconnect

* Resolve PR comment
This commit is contained in:
Yurong He
2019-03-12 13:06:02 -07:00
committed by GitHub
parent d555dcb6d7
commit 08c7cc0918
2 changed files with 10 additions and 4 deletions

View File

@@ -712,11 +712,11 @@ export class NotebookModel extends Disposable implements INotebookModel {
if (this.notebookOptions && this.notebookOptions.connectionService) {
let connectionService = this.notebookOptions.connectionService;
if (this._otherConnections) {
this._otherConnections.forEach(conn => connectionService.disconnect(conn).catch(e => console.log(e)));
notebookUtils.asyncForEach(this._otherConnections, async (conn) => await connectionService.disconnect(conn).catch(e => console.log(e)));
this._otherConnections = [];
}
if (this._activeConnection) {
this.notebookOptions.connectionService.disconnect(this._activeConnection).catch(e => console.log(e));
await this.notebookOptions.connectionService.disconnect(this._activeConnection).catch(e => console.log(e));
this._activeConnection = undefined;
}
}

View File

@@ -59,7 +59,7 @@ export function getProvidersForFileName(fileName: string, notebookService: INote
return providers;
}
export function getStandardKernelsForProvider(providerId: string, notebookService: INotebookService) : IStandardKernelWithProvider[] {
export function getStandardKernelsForProvider(providerId: string, notebookService: INotebookService): IStandardKernelWithProvider[] {
if (!providerId || !notebookService) {
return [];
}
@@ -91,7 +91,7 @@ export function getServerFromFormattedAttachToName(name: string): string {
// Extract database name from format used in Attach To: serverName (databaseName)
export function getDatabaseFromFormattedAttachToName(name: string): string {
return name.substring(name.lastIndexOf('(') + 1, name.lastIndexOf(')')) ?
name.substring(name.lastIndexOf('(') + 1, name.lastIndexOf(')')) : '';
name.substring(name.lastIndexOf('(') + 1, name.lastIndexOf(')')) : '';
}
export interface IStandardKernelWithProvider {
@@ -116,4 +116,10 @@ export function tryMatchCellMagic(input: string): string {
let match = magicRegex.exec(firstLine);
let magicName = match && match[1];
return magicName;
}
export async function asyncForEach(array: any, callback: any): Promise<any> {
for (let index = 0; index < array.length; index++) {
await callback(array[index], index, array);
}
}