Как правильно написать async function javascript

221
14 мая 2018, 05:40

Решаю задание и вот возникла проблема з написанием функции. Все методы прописал, а вот как задейсвовать их не знаю. Может кто-то помочь с реализацией.

Создайте класс «Fighter» с такими свойствами, как name, health и power. Эти параметры должны быть установлены в конструкторе. Кроме того, класс «Fighter» должен содержать такие методы, как «setDamage», «hit» и «knockout».

Метод setDamage имеет параметр «damage», и этот метод устанавливает повреждение бойца путем изменения значения health (health = health - damage) и состояния печатается в консоли.

Метод «hit» имеет параметры «enemy», «point» и вызывает метод «enemy.setDamage (damage)». «Damage» вычисляется как power * point, где point является параметром от функции «fight», а power - это свойство бойца, наносящего урон.

Метод «knockout» возвращает promise, который разрешается через полсекунды (используйте функцию setTimeout внутри обещания) и печатает в консоль сообщения «время закончилось» до того, как promise был разрешена.

Создайте класс ImprovedFighter, который наследует методы и свойства класса Fighter.

Для этого класса создайте метод «doubleHit», который вызывает метод наследования «hit» и передает там двойную point

Для каждого класса создайте два экземпляра - fighter и Improfighter

Создайте асинхронную функцию «fight» с такими параметрами, как fighter, improvedFighter и points.

Функция "fight" должна начинать игру и может иметь различное количество параметров. Например, fight(fighter, improvedFighter, 25, 13, 45), где point = [25, 13, 45].

Игроки ударяют друг друга один за другим с помощью метода «hit», который принимает point в качестве аргумента. Когда health достигает 0, печатается в консоль that user in knockout и вызывается метод «knockout». Вы должны подождать, пока promise не будет разрешен.

class Fighter {
  constructor(name, health, power) {
    this.name = name;
    this.health = 100;
    this.power = power;
  }
  setDemage(damage) {
    this.health = this.healt - damage;
    console.log(this.health);
  }
  hit(enemy, point) {
    enemy.setDemage(this.power * point);
  }
  knockout() {
    return new Promise((resolve) => {
      setTimeout (() => {
      console.log("time is over");
      resolve();
      }, 2000);
    });
  }
}
class ImprovedFighter extends Fighter {
  doubleHit(){
    super.hit();
    enemy.setDemage(this.power * (point * 2);
  }
}
READ ALSO
Получения данных списка, vue.js

Получения данных списка, vue.js

Я решил сделать перебор статей используя vueВ общем суть такова, у меня не работало dropdown bootstrap в самом vue, и я скачал дополнения (vue-js-dropdown)

219
React, разница в месте определения state

React, разница в месте определения state

Использую ReactJS, пишу на ECMASсript 7 и использую транслятор BabelJS

176
js поиск на странице

js поиск на странице

Всем привет, по ссылке ниже есть скрипт для поиска по странице, но проблема в том, что он начинает искать сразу после ввода в текстовое поле,...

190