diff --git a/src/sql/parts/notebook/models/notebookModel.ts b/src/sql/parts/notebook/models/notebookModel.ts index a61acca060..40c8bf53a1 100644 --- a/src/sql/parts/notebook/models/notebookModel.ts +++ b/src/sql/parts/notebook/models/notebookModel.ts @@ -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; } } diff --git a/src/sql/parts/notebook/notebookUtils.ts b/src/sql/parts/notebook/notebookUtils.ts index ba9e326f4e..8008c1b94f 100644 --- a/src/sql/parts/notebook/notebookUtils.ts +++ b/src/sql/parts/notebook/notebookUtils.ts @@ -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 { + for (let index = 0; index < array.length; index++) { + await callback(array[index], index, array); + } } \ No newline at end of file