[英]Node.js - Promise
我正在為 Node.js 承諾而苦苦掙扎......
代碼方法必須返回一個 Promise ,它用字符串解析。 解析的字符串取決於 Developer 實例的名稱和語言屬性的值:
Output 示例:語言:nodejs。 然后console.log("Hello, Nicole!")
語言:java。 然后System.out.println("Hello, Nicole!")
語言:python。 然后print("Hello, Nicole!")
對於任何其他語言,返回的 Promise 應該拒絕並帶有相應消息的錯誤實例: Unsupported language 。
請問,有人可以檢查此代碼方法是否正確嗎? 我認為不是,請問有什么問題,為什么?
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();
如果您返回 Promise,您必須定義它何時被解決以及何時被拒絕。
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);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.