I'm beginning in node.js and I just want to use my class B into my class A, but it seems not work... Here's my very simple code, I guess I do something wrong... I have 2 files (for 2 classes) :
Poney.js :
const {DeadPool} = require('./DeadPool');
class Poney {
constructor() {
this.regInter = setInterval(() => this.Regeneration(), 500);
this.energy = 0;
this.isUnicorn = false;
this.myDeadpool = new DeadPool();
}
Regeneration() {
this.energy += 10;
console.log(`Regeneration, Vitalite : ${this.Vitalite}`);
if (this.energy > 100) {
console.log('Evolution');
}
}
KillPoney() {
clearInterval(this.RegInter);
}
evolve() {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (this.isUnicorn = false) {
console.log('pas une licorne');
if(this.energy > 100) {
resolve();
this.energy = 0;
this.isUnicorn = true;
console.log('Transformation unicorn !');
}
else {
console.log('Energie insuffisante');
reject();
}
}
else {
reject();
console.log('Already an unicorn');
}
}, 1000);
});
}
backPoney() { //Retransforme les licornes en poney
return new Promise((resolve, reject) => {
setTimeout(() => {
if (this.isUnicorn = false) {
resolve();
this.energy = 0;
console.log('Back Poney to Unicorn');
}
else {
reject();
console.log('Not an Unicorn');
}
}, 1000);
});
}
}
const myDeadpool = new DeadPool();
//setTimeout(() => MyPoney.killPoney(), 10000);
module.exports = {Poney};
DeadPool.js :
const {Poney} = require('./Poney');
class DeadPool {
constructor() {
this.regInterDead = setInterval(() => this.regeneration(), 4000 );
this.transInter = setInterval(() => this.makeUnicorn(), 4000 );
this.isRegenerate = false;
this.poneys = [];
for (var iVal = 0; iVal < 10; iVal++) {
this.poneys.push(new Poney())
}
}
makeUnicorn(){
this.makeEvolve()
.then(() => console.log('Evolve ok !'))
.catch(() => console.log('error evolve'));
}
regeneration(){
this.checkPoney()
.then(() => console.log('Regeneration Deadpool'))
.catch(() => console.log('Pas de regeneration'));
}
checkPoney() {
return new Promise((resolve, reject) => {
setTimeout(() => {
var iNumPoney = Math.floor((Math.random() * 10) + 1);
var bConard = (Math.floor((Math.random() * 1) + 1) >= 1); // 1 chance sur 2 d'utiliser la licorne
if (bConard){
this.poneys[iNumPoney].backPoney()
.then(() => console.log('Licorn to Poney ok'))
.catch(() => console.log('back licorn rejected'));
this.isRegenerate = true;
resolve();
}
else{
console.log('Je ne suis pas un conard');
reject();
}
}, 1000);
});
}
makeEvolve() {
return new Promise((resolve, reject) => {
setTimeout(() => {
var iNumPoney = Math.floor((Math.random() * 10) + 1);
var bGentil = (Math.floor((Math.random() * 1) + 1) > 1); // 1 chance sur 2 de la faire evoluer
if(bGentil) {
poneys[iNumPoney].evolve()
.then(() => console.log('TRANSFORMATION !'))
.catch(() => console.log('Evolution impossible'));
resolve();
}
else {
console.log('Pas gentil');
reject();
}
}, 1000);
});
}
}
module.exports = {DeadPool};
And I have an Error in the constructor of Poney when I'm trying to instanciate new Poney :
*"C:\Program Files (x86)\JetBrains\WebStorm 2016.3.3\bin\runnerw.exe" "C:\Program Files\nodejs\node.exe" C:\Users\Stef\Desktop\Cours\JS\Poney.js
C:\Users\Stef\Desktop\Cours\JS\DeadPool.js:19
this.poneys[iVal] = new Poney();
^
TypeError: Poney is not a constructor
at new DeadPool (C:\Users\Stef\Desktop\Cours\JS\DeadPool.js:19:27)
at Object.<anonymous> (C:\Users\Stef\Desktop\Cours\JS\Poney.js:74:20)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.runMain (module.js:605:10)
at run (bootstrap_node.js:422:7)
at startup (bootstrap_node.js:143:9)*
Thank you for your help..
via BlackStef
No comments:
Post a Comment