我是 node.js 的新手并试图弄清楚异步回调是如何工作的

下面给出的代码给出“一”“二”作为输出而不是“三”


任何人都可以向我解释为什么没有在输出中显示三个的原因吗?


我尝试了很多方法,但仍然无法弄清楚出了什么问题。


const http=require('http');

const fs=require('fs');


function f1( ()=>{console.log("three");})

{

  console.log("two");

}


const server=http.createServer((req,res)=>{

  console.log("one");

  f1();



});



server.listen(9800);


慕田峪9158850
浏览 180回答 2
2回答

慕丝7291255

正如 xavier 所评论的,这不应该只编译。您可以尝试的一种方法是:const IamCallBack = () => { console.log("three");};function f1(callback) {console.log("two");callback();}f1(IamCallBack);

慕侠2389804

以下是如何使用回调的示例:const http=require('http');const fs=require('fs');function f1(arg_string,callback){&nbsp; &nbsp; &nbsp; console.log(arg_string);&nbsp; &nbsp; &nbsp; callback("three");}const server=http.createServer((req,res)=>{});server.listen(9800);console.log("one");f1("two",function(cb_string){&nbsp; &nbsp; console.log(cb_string);});这将打印:onetwothree首先,将“two”作为参数提供给f1,将其打印到控制台。一旦函数完成,它就会调用该callback函数。我们将回调函数定义为:function(cb_string){&nbsp; &nbsp; console.log(cb_string);}这在调用时作为第二个参数提供f1。然后一旦f1完成运行,它将调用提供给它的任何函数:function f1(arg_string,callback){&nbsp; &nbsp; &nbsp; console.log(arg_string);&nbsp; &nbsp; &nbsp; callback("three"); //<--- whatever function you used to call it}执行回调函数时,它会输出“三”,因为这就是f1返回给原始调用者的内容:console.log(cb_string);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript