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)
我怎样才能编写代码来像普通循环一样使用它?
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)
| 归档时间: |
|
| 查看次数: |
2148 次 |
| 最近记录: |