diff --git a/src/SASViyaApiClient.ts b/src/SASViyaApiClient.ts index edbf002..bac2d8e 100644 --- a/src/SASViyaApiClient.ts +++ b/src/SASViyaApiClient.ts @@ -1107,6 +1107,8 @@ export class SASViyaApiClient { } return new Promise(async (resolve, _) => { + let printedState = '' + const interval = setInterval(async () => { if ( postedJobState === 'running' || @@ -1114,9 +1116,6 @@ export class SASViyaApiClient { postedJobState === 'pending' ) { if (stateLink) { - if (this.debug) { - console.log('Polling job status... \n') - } const { result: jobState } = await this.request( `${this.serverUrl}${stateLink.href}?_action=wait&wait=30`, { @@ -1126,10 +1125,16 @@ export class SASViyaApiClient { ) postedJobState = jobState.trim() - if (this.debug) { - console.log(`Current state: ${postedJobState}\n`) + + if (this.debug && printedState !== postedJobState) { + console.log('Polling job status...') + console.log(`Current job state: ${postedJobState}`) + + printedState = postedJobState } + pollCount++ + if (pollCount >= MAX_POLL_COUNT) { resolve(postedJobState) } diff --git a/src/SessionManager.ts b/src/SessionManager.ts index 1ff7cc2..1b63f17 100644 --- a/src/SessionManager.ts +++ b/src/SessionManager.ts @@ -23,6 +23,10 @@ export class SessionManager { private currentContext: Context | null = null private csrfToken: CsrfToken | null = null private _debug: boolean = false + private printedSessionState = { + printed: false, + state: '' + } public get debug() { return this._debug @@ -175,8 +179,10 @@ export class SessionManager { sessionState === '' ) { if (stateLink) { - if (this.debug) { - console.log('Polling session status... \n') + if (this.debug && !this.printedSessionState.printed) { + console.log('Polling session status...') + + this.printedSessionState.printed = true } const { result: state } = await this.requestSessionStatus( @@ -191,8 +197,11 @@ export class SessionManager { sessionState = state.trim() - if (this.debug) { - console.log(`Current state is '${sessionState}'\n`) + if (this.debug && this.printedSessionState.state !== sessionState) { + console.log(`Current session state is '${sessionState}'`) + + this.printedSessionState.state = sessionState + this.printedSessionState.printed = false } // There is an internal error present in SAS Viya 3.5