grunt-contrib-jshint выдает ошибки при использовании обещаний - PullRequest
0 голосов
/ 21 января 2020

Я использую grunt с grunt-contrib-jshint в процессе связывания для моих asp. net файлов машинописи ядра.
У меня есть этот супер простой код машинописи:

function delay(delay: number) {
    return new Promise(r => {
        setTimeout(r, delay);
    })
}

class Timer {
    constructor(public counter: number = 3, public delayMs: number = 1000) {
        this.doTimer();
    }

    async doTimer() {
        for (let i = 0; i < this.counter; i++) {
            await delay(this.delayMs);
            this.counter = this.counter - 1;
            console.log(this.counter);
        }
    }
}

Результат js выглядит так:

var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
function delay(delay) {
    return new Promise(r => {
        setTimeout(r, delay);
    });
}
class Timer {
    constructor(counter = 3, delayMs = 1000) {
        this.counter = counter;
        this.delayMs = delayMs;
        this.doTimer();
    }
    doTimer() {
        return __awaiter(this, void 0, void 0, function* () {
            for (let i = 0; i < this.counter; i++) {
                yield delay(this.delayMs);
                this.counter = this.counter - 1;
                console.log(this.counter);
            }
        });
    }
}
//# sourceMappingURL=Timer.js.map

grunt-contrib-jshint настроен так, как на моем Gruntfile.js:

module.exports = function (grunt) {
    grunt.initConfig({
         concat: {
            all: {
                src: ['Script/Timer.js'],
                dest: 'temp/app.js'
            }
        },
        jshint: {
            files: ['temp/app.js'],
            options: {
                '-W069': false,
                'esversion': 6,
            }
        },
      }
    });

     grunt.loadNpmTasks('grunt-contrib-concat');
     grunt.loadNpmTasks('grunt-contrib-jshint');
};

grunt-contrib-jshint выводит следующие ошибки:

temp/app.js
      3 |    return new (P || (P = Promise))(function (resolve, reject) {
                                           ^ Bad constructor.
      6 |        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
                                                                                                                           ^ Expected an 

Я также пытался настроить jshint с помощью esversion 9. grunt-contrib-jshint - это версия 2.1.0.
Что не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...