私は、約束を使ってヨーヨンジェネレータで再帰的なプロンプトを行う方法を理解しようとしています。私はフォームコンポーネントの名前を最初に尋ねるフォームジェネレータを生成しようとしています。そして、各入力(つまり:firstName、lastName、usernameなど)の名前(idとして使用されます)を求めます。私はコールバックを使用してこの質問の答えを見つけましたが、私は約束に固執したいと思います。以下は私がこれまでに持っていたコードであり、再帰のために何をしようとしているのですが、動作していません。どんな助けやアドバイスもありがとうございます。約束でYeomanで再帰的なプロンプトを実行するには?
const Generator = require('yeoman-generator')
const questions = [
{ type: 'input',
name: 'name',
message: 'What is the name of this form?',
default: 'someForm'
},
{
type: 'input',
name: 'input',
message: 'What is the name of the input?'
},
{
type: 'confirm',
name: 'askAgain',
message: 'Is there another input to add?'
}
]
module.exports = class extends Generator {
prompting() {
return this.prompt(questions).then((answers) => {
if (answers.askAgain) {
this.prompting()
}
this.userOptions = answers
this.log(this.userOptions)
})
}
}
「this.async」は必ずしも必要ではありません。代わりに 'return this.prompting2()'を返すことで、チェーンの約定を解決することができます。これはYeoman特有のものではありませんが、これがPromiseの働きです。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise –
説明をありがとうございます!私は私の答えを編集する – pbie42