Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.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 按顺序执行操作_Javascript_Node.js - Fatal编程技术网

Javascript 按顺序执行操作

Javascript 按顺序执行操作,javascript,node.js,Javascript,Node.js,我知道这99%是一个非常愚蠢的问题,但我刚刚开始学习javascript和node.js 这是代码,稍后我将解释该问题: 函数f(args){ request.post({stuff}), 函数optionalCallback(错误、响应、正文){ 如果(错误){ console.log('上载失败:',错误); } console.log(JSON.parse(body));/#2 返回JSON.parse(body); }); } //稍后在代码中的switch语句中 案例“测试”: co

我知道这99%是一个非常愚蠢的问题,但我刚刚开始学习javascript和node.js

这是代码,稍后我将解释该问题:

函数f(args){
request.post({stuff}),
函数optionalCallback(错误、响应、正文){
如果(错误){
console.log('上载失败:',错误);
}
console.log(JSON.parse(body));/#2
返回JSON.parse(body);
});
}
//稍后在代码中的switch语句中
案例“测试”:
console.log(f(args));//#1.
中断
//稍后在代码中的switch语句中

这是你的第一个错误;)

switch语句中的代码不会在函数“之后”执行。它是调用函数
f(args)
的代码

其次,
函数f(args)
在调用时不返回值:因此调用方将接收
未定义的

函数f
中存在
return
语句这一事实并不意味着函数本身返回一个值,只是函数(
函数f
)将从嵌入的
optionalCallback
函数中接收一个值

//稍后在代码中的switch语句中

这是你的第一个错误;)

switch语句中的代码不会在函数“之后”执行。它是调用函数
f(args)
的代码

其次,
函数f(args)
在调用时不返回值:因此调用方将接收
未定义的

函数f
中有一个
return
语句这一事实并不意味着函数本身返回一个值,只是函数(
函数f
)将从嵌入的
optionalCallback
函数中接收一个值。

节点“异步”工作,而不是“同步”像C++、Python这样的语言。当您在console.log中输入
f(args)
时,一个单独的事件循环将开始使用您的函数

将其视为“理解”的单独线程

你想要什么

---{function call here}-----------------{response here} -> console.log now                                  
                                              ^ 
            \                                  \
             \                                  \
          inside the function ---{post}--->      \ 
                                    \             \
                                     \             \
                                      -----{response here}---->
                                                 \
                                                  \
                                                   -------> console.log #2 successfull

节点与“C++”、Python等“同步”语言不同,工作“异步”。当您在console.log中输入

f(args)
时,一个单独的事件循环将开始使用您的函数

将其视为“理解”的单独线程

你想要什么

---{function call here}-----------------{response here} -> console.log now                                  
                                              ^ 
            \                                  \
             \                                  \
          inside the function ---{post}--->      \ 
                                    \             \
                                     \             \
                                      -----{response here}---->
                                                 \
                                                  \
                                                   -------> console.log #2 successfull

你的问题是什么?首先,为什么会发生。然后,如何使它在这两种情况下打印对象。我将更新问题这可能会被标记为重复^^有很多好的信息可以帮助您理解JSF的异步性质您的问题是什么?首先,为什么会发生。然后,如何使它在这两种情况下打印对象。我将更新问题这可能会被标记为重复^^有很多好的信息可以帮助您理解JS的异步性质