前提・実現したいこと
JavaScriptのyield式を使った以下のプログラムの出力を
コンソールからの入力によって変化させようとしています。
$ node main.js { value: 'お名前は?', done: false } { value: 'お好きな色は何ですか?', done: false } { value: '楓さんの好きな色は緑だそうですよ。', done: true } { value: undefined, done: true }
発生している問題・エラーメッセージ
JavaScriptのコンソールからの入力は
以下のプログラムでできることはわかりましたが、現行のプログラムと組み合わせる方法がわかりません。
javascript
1const readline = require('readline').createInterface({ 2 input: process.stdin, 3 output: process.stdout 4}); 5 6readline.question('What is your name? ', (answer) => { 7 console.log(`Hello, ${answer}!`); 8 readline.close(); 9});
該当のソースコード
main.js
JavaScript
1function* iterrogate(){/*質問する*/ 2 const name = yield "お名前は?"; 3 const color = yield "お好きな色は何ですか?"; 4 return `${name}さんの好きな色は${color}だそうですよ。`; 5 6} 7 8const it = iterrogate(); /*イテレーターが返る*/ 9console.log(it.next());/*最初の1回は値を渡さない(渡しても無視させる)*/ 10console.log(it.next('楓')); // 11console.log(it.next('緑')); 12console.log(it.next());
試したこと
pythonの場合、以下のように変数に入力して、
イテレータの場合console.log(int.next(your_name));
のように
渡せると思うのですが、JavaScriptのこの表現がどのようになるのか
うまく検索で見つけられない状態です。
python
1#pythonの場合 2print('あなたの名前を教えてください。') 3your_name = input('>> ') 4print(your_name)
補足情報(FW/ツールのバージョンなど)
node v13.2.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/27 10:53