如何在node.js中逐行运行代码
我是node.js新手 我知道它使用asynchronous编程,但我需要编写一个循环,要求用户input一些数据,然后在用户input数据后,一次又一次地询问,直到循环结束。 我试过这个代码,但输出是这样的:
插入数据?
插入数据?
插入数据?
当我想input的东西是这样的:aaallliii
for (index=1;index<=3;index++){ console.log("Insert Data?"); prompt.start(); prompt.get(['data'], function (err, result) { }); }
我怎么能写代码来使用它像正常循环?
如果您能够使用节点v7.6,则这是一个使用async/await
的解决scheme。
async/await
可以让你使用asynchronous的东西,并以更加同步的方式编写代码。 在你的情况下,你想提示用户input,然后等待他们的回应,然后再继续。 await
关键字可以让你用相同的方式编写代码,直到用户给出了input(尽pipe一切仍然是asynchronous的,基本上它只是语法糖)
async function insertData() { for (let index = 1; index <= 3; index++) { console.log("Insert Data?"); prompt.start(); let input = await new Promise(resolve => { prompt.get(['data'], (err, result) => { resolve(result); } }); // do something with input } } insertData().then(() => console.log("Done prompting."));