如何在node.js中逐行运行代码

Ali*_*deh 2 javascript asynchronous node.js

我是 Node.js 的新手。我知道它使用异步编程,但我需要编写一个循环来要求用户输入一些数据,然后在用户输入数据后,一次又一次地询问,直到循环结束。我尝试了这段代码,但输出如下:
插入数据?
插入数据?
插入数据?
当我想输入一些东西时,就像:aaallliii

for (index=1;index<=3;index++){
    console.log("Insert Data?");
    prompt.start();
    prompt.get(['data'], function (err, result) 
    {
    });
    }
Run Code Online (Sandbox Code Playgroud)

我怎样才能编写代码来像普通循环一样使用它?

jac*_*rms 5

async/await如果您能够使用节点 v7.6,这里有一个使用 的解决方案。

async/await允许您使用异步内容并以看起来更同步的方式编写代码。在您的情况下,您希望提示用户输入,然后等待他们的响应,然后再继续。该await关键字允许您以相同的方式编写代码,“阻塞”直到用户给出输入(尽管一切仍然是异步的,但基本上只是语法糖)

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."));
Run Code Online (Sandbox Code Playgroud)