在从命令提示符接受输入之前打印输出


大家好,我是javascript新手。在这些代码中,obj首先打印,然后命令提示符接受输入我使用async并等待请更正代码。
const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
async function create() {
let obj = {fname:"",lname:"",email_adds:"",phone_number:""}
readline.question("Enter First name",function(name) {
readline.question("Enter Last name",function(lname){
readline.question("Enter Email address ",function(em){
readline.question("Enter Phone number ",function(ph){
obj.fname = name
obj.lname = lname
obj.email_adds = em
obj.phone_number = ph

readline.close();
});
});
});
});
function print(){
console.log(obj)
}
await print()
}
create()

我们可以将其转换为Promise

因此console.log将等待直到Promise解析。

Promise对象表示异步操作的最终完成(或失败(及其结果值。

如果异步操作成功,则通过调用resolve函数返回预期结果。同样,如果在异步操作的执行过程中发生了一些意外错误,则reject函数会返回结果。

当调用了resolvereject时,承诺就已得到解决。

当promise被解析时,then回调被触发。还可以链接then方法回调。当承诺被拒绝时,catch回调被执行。

const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
function create() {
return new Promise(function(resolve, reject) {
let obj = {
fname: "",
lname: "",
email_adds: "",
phone_number: ""
}
readline.question("Enter First name", function(name) {
readline.question("Enter Last name", function(lname) {
readline.question("Enter Email address ", function(em) {
readline.question("Enter Phone number ", function(ph) {
obj.fname = name
obj.lname = lname
obj.email_adds = em
obj.phone_number = ph
readline.close();
resolve(obj);
});
});
});
});

})
}
create().then((res) => {
console.log(res)
})

最新更新