Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js:确定脚本是异步的还是非阻塞的_Javascript_Node.js_Asynchronous_Nonblocking - Fatal编程技术网

Javascript Node.js:确定脚本是异步的还是非阻塞的

Javascript Node.js:确定脚本是异步的还是非阻塞的,javascript,node.js,asynchronous,nonblocking,Javascript,Node.js,Asynchronous,Nonblocking,Node.js声明为异步、事件驱动、非阻塞I/O,但如何确定脚本是否为异步脚本?还是非阻塞?读取代码;)当库是异步的时,这一点通常非常明显,因为它通常有助于延续或消息传递样式的代码。通常情况下,你可以故意设置一个调用块,看看它的反应如何。或者更好:分析你的代码 我不知道有哪种工具可以回答“输入代码是异步的还是同步的”: 或者您可以共享代码或其他上下文:) 编辑: 你能给我举一个阻塞或非异步代码的例子吗六氰化物 本问题讨论了以下内容: 同步代码如下所示: console.log("first");

Node.js声明为异步、事件驱动、非阻塞I/O,但如何确定脚本是否为异步脚本?还是非阻塞?

读取代码;)当库是异步的时,这一点通常非常明显,因为它通常有助于延续或消息传递样式的代码。通常情况下,你可以故意设置一个调用块,看看它的反应如何。或者更好:分析你的代码

我不知道有哪种工具可以回答“输入代码是异步的还是同步的”:

或者您可以共享代码或其他上下文:)

编辑:

你能给我举一个阻塞或非异步代码的例子吗六氰化物

本问题讨论了以下内容:

同步代码如下所示:

console.log("first");
console.log("second");
console.log("third");
这三行代码同步运行—第一行、第二行和第三行

相反,此代码异步运行:

function f() {
    alert("first");
}
function g() {
    alert("second");
}

// defer execution for 1000 ms
setTimeout(f, 1000);
// defer execution for 500 ms
setTimeout(g, 500);
// run immediately
alert("third");
您将看到“第三个”-首先是警报,然后是“第二个”,最后是“第一个”。这是一个非常精心设计的示例,但是您可以看到回调(f和g)以及流与同步代码的根本区别

您可以读取同步代码,大多数事情都会像您读取它们一样发生,在异步代码中,事件将触发或调用回调,执行路径可能不像同步阻塞代码那样明显

Node.js是异步代码的一个示例,其中大多数函数调用都会使用一组回调参数来表示成功、失败以及其他可能应用的情况

EDIT2:


此链接有一些Javascript示例,其代码编写方式与sync/async相同:

有一个异步函数列表,包括:

process.nextTick( ... )

setTimeout( ... )
setInterval( ... )
来自模块:

对于
fs
,基本上是异步的,它们的同步版本末尾带有“Sync”后缀(但应避免使用同步版本)

还有更多的例子。可以认为是异步的(例如,或),尽管从技术上讲不是(它们依赖于异步操作)

基本上,几乎所有接受
回调
作为参数的内容都是异步的(或依赖于异步操作),例如:

process.nextTick( function( ) { // <--- the callback
    console.log( 'nextTick' );
});
console.log( 'test' ); // <--- will fire before the callback, i.e. asynchronouos
process.nextTick(函数(){//
process.nextTick( function( ) { // <--- the callback
    console.log( 'nextTick' );
});
console.log( 'test' ); // <--- will fire before the callback, i.e. asynchronouos
var arr = [ 1, 2, 3 ];
arr.forEach( function(el) { // <--- the callback
    console.log( el );
});
console.log( 'test' ); // <--- will fire after the callback, i.e. synchronous