Как правильно использовать Asyn c .doWhilst для проверки состояния до завершения задания? - PullRequest
0 голосов
/ 17 января 2020

Я унаследовал некоторый код из примера кода, который использует метод Asyn c .DoWhilst. В первый раз, когда проверка выполняется, она возвращает значение true, но затем она не повторяется.

async.doWhilst(
        function checkForCompletionStatus(whilstCallback) {
            setTimeout(() => {
                self._getWorkItemStatus(accessToken, workItemId, (err, resp, body) => {
                    const errMsg = self._getErrorFromRequestResponse(err, resp, body);
                    console.log('iteratee');
                    if (errMsg) {
                        logger.log('GET STATUS ERR:' + errMsg);
                        whilstCallback(errMsg);
                        return;
                    }
                    parsedBody = JSON.parse(body);
                    whilstCallback();
                    }
                )

            }, 5000); 
        },
        function checkWorkItemStatusComplete() {
            logger.log('Checking status: ' + parsedBody.status + ' ' + (Date.now() - startWait) + ' ms');
            console.log(parsedBody.status === 'pending' || parsedBody.status === 'inprogress');
            return parsedBody.status === 'pending' || parsedBody.status === 'inprogress';
        },
        () => {
            console.log('why isnt this running');
            if (parsedBody.reportUrl) {
                logger.log('Log file available here: ' + parsedBody.reportUrl)
            }

            if (parsedBody.status !== 'success') {
                callback('Workitem finished with status: ' + parsedBody.status);
                return;
            }
            callback();
        },
    )

Как мне заставить это работать правильно? Спасибо!

...