I'm struglling with Node.js Promises...
The code method must returns a Promise which resolves with a String. The resolved String depends on the value of the name and language properties of the Developer instance:
Output Example: language: nodejs. Then console.log("Hello, Nicole!")
language: java. Then System.out.println("Hello, Nicole!")
language: python. Then print("Hello, Nicole!")
For any other language, the returned Promise should reject with an Error instance with a respective message: Unsupported language .
Please, could anyone check if this code method correct? I assume it isn't, please, what's wrong and why?
class developer {
constructor(name, language) {
this.name = name
this.role = language
}
getName() {
return this.name
}
setName(name) {
this.name = name
}
getLanguage() {
return this.language
}
setLanguage(language) {
this.language = language
}
code() {
this.getName();
this.getLanguage();
return new Promise((resolve, reject) => {
if (this.language === 'nodejs') {
console.log(' console.log("Hello, ' + this.name + '!")');
} else if (this.language === 'java') {
console.log('System.out.println("Hello, ' + this.name + '!")');
} else if (this.language === 'python') {
console.log('print("Hello, ' + this.name + '!")');
} else {
console.log('Unsupported language: ' + this.language);
}
});
}
}
let mydeveloper = new developer();
mydeveloper.code();
If you return a Promise, you have to define when it is resolved and when it's rejected.
class developer {
constructor(name, language) {
this.name = name
this.role = language
}
getName() {
return this.name
}
setName(name) {
this.name = name
}
getLanguage() {
return this.language
}
setLanguage(language) {
this.language = language
}
code() {
this.getName();
this.getLanguage();
return new Promise((resolve, reject) => {
if (this.language === 'nodejs') {
resolve('console.log("Hello, ' + this.name + '!")');
} else if (this.language === 'java') {
resolve('System.out.println("Hello, ' + this.name + '!")');
} else if (this.language === 'python') {
resolve('print("Hello, ' + this.name + '!")');
} else {
reject('Unsupported language: ' + this.language);
}
});
}
}
let mydeveloper = new developer('John Doe', 'English');
// Will print out -> Unsupported language: undefined
mydeveloper
.code()
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
});
// Set language to nodejs
mydeveloper.setLanguage('nodejs');
// Will print out -> console.log("Hello, John Doe!")
mydeveloper
.code()
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
});
// Set language to java
mydeveloper.setLanguage('java');
// Will print out -> System.out.println("Hello, John Doe!")
mydeveloper
.code()
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
});
// Set language to python
mydeveloper.setLanguage('python');
// Will print out -> print("Hello, John Doe!")
mydeveloper
.code()
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
});
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.