首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C语言开发人员入门TypeScript

C语言开发人员入门TypeScript
EN

Stack Overflow用户
提问于 2019-12-28 01:41:28
回答 1查看 51关注 0票数 1

我是一名C开发人员,正在尝试学习TypeScript(不了解JS\Node等,只学习C和一些C++)。我正在尝试从stdin中读取几行代码,但无法做到这一点……该怎么做呢?也许有人知道C-developer学习TS\JS的方法。因为现在我不能理解所有这些模块是如何工作的。

下面是我尝试读行的代码:

代码语言:javascript
复制
import * as readline from 'readline';

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

interface Person {
    firstName: string;
    lastName: string;
}

let p: Person = { firstName: '', lastName: '' };

rl.question('Enter your first name: ', (input) => {
    p.firstName = input;
});
rl.question('Enter your last name: ', (input) => {
    p.lastName = input;
});

rl.close();

console.log(`Hello ${p.firstName} ${p.lastName}!`);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-28 01:48:48

JavaScript是一种事件驱动语言,它利用异步回调在IO可用时运行代码。这与许多语言的同步特性形成了鲜明对比,比如C和C++。

在发送输入之前,您的rl.question回调不会被调用。

你需要重构你的代码来等待这些输入。这里有一种简单的方法可以做到这一点。

代码语言:javascript
复制
import * as readline from 'readline';

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

interface Person {
    firstName: string;
    lastName: string;
}

let p: Person = { firstName: '', lastName: '' };

rl.question('Enter your first name: ', (input) => {
    p.firstName = input;

    rl.question('Enter your last name: ', (input) => {
        p.lastName = input;

        rl.close();

        console.log(`Hello ${p.firstName} ${p.lastName}!`);
    });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59504219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档