CLI NodeJS(并发、回调、.methods)

CLI NodeJS (Concurrency, Callbacks, .methods)

关于在 Web 开发中使用 Nodejs 的几个问题。

1) 对于我的并发问题,它涉及语法。有区别吗:

setInterval(function() {
    console.log('Task A');
}, 10);

function setInterval() {
    console.log('Task A');
}, 10);

此外,我有点不明白方法末尾的“10”是什么意思,我猜是方法完成所需的时间?

2) 回调 - 回调在技术上只是 Node 中用于测试代码的另一个名称吗?

3) 我可以在 Node(CLI) 中使用一种方法来查看模块中的所有方法吗?

EX:

var fs = require('fs');

显然文件系统模块中有大量的方法,但是就像语言Ruby一样,在CLI中使用PRY,你可以输入'fs.methods',这将显示所有的方法。然后使用'cat',你可以看到每个方法的内容。像这样的节点(CLI)?

感谢所有 advice/answers!

干杯, G

1。 首先,您传入一个匿名函数,该函数将在间隔内调用。这里你使用的是 node.js API setInterval.

在第二个示例中,您声明了一个名为 setInterval 的函数。看起来有语法错误...

setInterval 是一个将 2 个对象作为参数的函数。而已。第一个参数应该是一个函数,第二个参数应该是以毫秒为单位的间隔时间。 setInterval 所做的只是 运行 按照第二个参数指定的每 x 毫秒在第一个参数(回调)中传入的函数。

2。 不。回调是可以传递给其他函数的函数,因此它们可以在代码的后面 "called-back"。回调在 node.js 应用程序中无处不在,并且与其基于异步事件的体系结构密切相关。它是 node.js 中最常见的模式之一。

3。 只需查看他们网站上的 node.js api 文档即可。

我建议您阅读有关 node.js 事件循环和异步编程的内容。

首先,你问的是 Javascript 的一些非常基本的方面,所以我建议你通过一些基本的 Javascript 培训,因为它很难学习 node.js 如果你还没有对 Javascript 的基础知识有一个核心的理解。特别是回调是许多 nodejs 编码不可或缺的一部分。

Is there a difference between these two?

是的,两者完全不同。一个使用内置的计时器函数,另一个试图声明它自己的与计时器无关的函数。

让我解释一下你的两个例子:

内置setInterval函数

setInterval(function() {
    console.log('Task A');
}, 10);

Nodejs 有一个名为 setInterval 的内置计时器功能。您可以在此处找到它的文档。

你给这个函数传递了两个参数。第一个参数是函数引用,第二个参数是以毫秒为单位的时间量。 nodejs 计时器基础结构将每 N 毫秒调用一次您传递给它的函数。

通过像这样使用 setInterval 可能会更容易理解它的工作原理:

function myFunction() {
    console.log('Task A');
}

setInterval(myFunction, 10);

这与您的第一个示例具有相同的输出,但我认为它更清楚地显示了 setInterval() 是如何接受两个参数的内置函数,一个函数和一个数字。

在您的示例中,您传递的不是命名函数,而是一个简单地执行 console.log('Task A'); 的匿名函数,并且该函数将每 10 毫秒(大约)调用一次。

创建您自己的函数

 function setInterval() {
     console.log('Task A');
 }, 10);

此代码块是 Javascript 语法错误,无法运行。您似乎在尝试定义自己的函数 setInterval(),但这不是声明函数的正确语法。

你可以像这样使它成为合法的语法:

function setInterval() {
    console.log('Task A');
}

然后,你会这样称呼它:

 setInterval();

这与前面的例子无关。这只是创建一个函数,每次调用它时都会运行一次。如果您实际上给它取了与全局函数相同的名称 setInterval(),那么您的局部定义将在它声明的范围内替换它。

您的其他问题

Also, i'm a little confused what the '10' means at the end of the method, my guess is the time it takes for the method to complete?

第一个例子中的10是间隔定时器的毫秒数。第二个示例中的 10 不属于那里 - 它是 Javascript 语法错误的一部分。

Callbacks - Are Callbacks just technically another name in Node for testing code?

没有。回调是指函数采用作为函数引用的参数(例如函数名称或匿名函数)。当您将回调传递给此函数时,您可以预期该函数将在将来的某个时间调用回调一次或多次。确切的调用时间或调用次数完全取决于函数的作用和编写方式。术语 "callback" 源于此函数将在未来某个时间 "called back" 的概念。

Is there a method I can use in the Node(CLI) to see all of the methods in a module?

我不知道命令行界面中的某个特定功能会为您提供模块的方法,但您可以自己迭代它们或在调试器中查看它们。

当你在节点中加载一个模块时:

var fs = require('fs');

您从 require() 函数返回的对象是一个 Javascript 对象。该模块的所有方法都是该对象的属性。您可以在调试器中或使用 console.log(fs) 检查该对象,或者通过编写代码来迭代该对象的属性。

var fs = require('fs');
for (var prop in fs) {
    if (fs.hasOwnProperty(prop)) {
        console.log(prop);
    }
}