当前位置: 首页 > 知识库问答 >
问题:

绕着节点中的回调来思考.js

陈季
2023-03-14

我只是在尝试一个简单的回调来获取代码按顺序执行而不是异步执行。这不起作用:

function fn1(string, func){
    console.log("hello");
    func();
};

function fn2(){
    console.log("world");
}

fn1("meaninglessString", fn2());

它实际上打印“世界”,然后“你好”到控制台,然后崩溃。但这确实:

function fn1(string, func){
    console.log("hello");
    func();
};

fn1("meaninglessString", function(){
    console.log("world");
});

我必须总是在调用fn1时编写回调函数代码吗?或者有没有方法引用已经编写的函数?此外,如果我只是希望一个函数在另一个函数完成后发生,这是在Node.js中执行此操作的最佳方法吗?

共有2个答案

狄玮
2023-03-14

在您的第一个模块中,您有:

fn1("meaninglessString", fn2());

这表示“使用参数调用 fn1 ”senselessString“ 以及调用 fn2 而不带参数的结果”。所以解释器这样做它调用 fn2 并且没有从中得到任何回报,它将“world”打印为双乘积,然后用参数“meaninglessString”调用 fn1,并且未定义打印“hello”并调用尚未设置(未定义)的函数,因此它崩溃。

相反,如果您更改代码以传递函数,而不是像下面那样调用函数的结果,它将按您的预期工作

function fn1(string, func){
    console.log("hello");
    func();
};

function fn2(){
    console.log("world");
}

fn1("meaninglessString", fn2);
魏凯捷
2023-03-14

看看你的最后一行:

fn1("meaninglessString", fn2());

应该是以下内容:

fn1("meaninglessString", fn2);

包括括号会导致fn2立即执行。

 类似资料:
  • 我正在尝试实现事件侦听器。节点js将订阅事件(使用C++函数)。当事件发生时,C++应该通知节点JS。 JS代码: C++代码: C++代码在编译时抛出以下错误 有没有人可以帮助我如何解决把节点函数env存储到C++映射中的问题。我需要保存env,以便在调用节点回调时发送响应。

  • 问题内容: 我试图在这个问题中创建一个类似于“奖杯轮”的可旋转节点。到目前为止,我具有甩尾功能,可以使用效果很好的UIPanGestureRecognizer在物理物体上添加角度脉冲。我也可以通过触摸停止旋转。 现在,我试图通过拖动或滑动手势来微调方向盘,这样,如果玩家对最终的效果不满意,就可以手动旋转/拖动/旋转它所喜欢的旋转方式。 目前,我将触摸的位置保存在touchesBegan中,并尝试在

  • 本文向大家介绍基于react框架使用的一些细节要点的思考,包括了基于react框架使用的一些细节要点的思考的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要是写关于学习react中的一些自己的思考: 1.setState到底是同步的还是异步的? 2.如何在子组件中改变父组件的state 3.context的运用,避免“props传递地狱” 4.组件类里有私有变量a,它到底改放在this.a中还

  • 我需要一些帮助在集合中思考。我有两个有效的查询。他们给我SET1和SET2。现在,对于SET1中的每一行,我需要应用SET2中的不同日期来获得最终结果SET3。 我们公司为经常错过约会的客户提供服务。我有一个复杂的查询,它会导致一组客户在过去六个月内错过了约会(“没有预约”),这个查询统计了该组中每个客户没有预约的次数。 SET2现在,我需要提高赌注,并显示自上次与客户的主要临床医生预约以来,有多

  • 问题内容: 请问有关节点和Redis的控制流问题的一些建议吗?(又名试图习惯JavaScript的Python编码器) 我不明白为什么和(Redis查找)需要是回调,而不是简单地成为语句-这使生活变得非常复杂。 基本上,我想查询一个集合,然后在获得集合的结果时,需要对每个结果进行获取。 当我获得所有数据后 ,我需要将其广播回客户端。 目前,我在两个回调中使用一个全局对象执行此操作,这看起来很混乱。

  • 在这一章中,我们会查看几个有趣的问题,并尝试用函数式的方式来漂亮地解决他们。我们并不会介绍新的概念,我们只是练习我们刚学到的写程序的技巧。每一节都会探讨不同的问题。会先描述问题,然后用最好的方式解决他。 运算逆波兰表示法(Reverse Polish notation form) 我们在学校学习数学的时候,我们多半都是用中置(infix)的方式来写数学式。例如说,我们会写 10 - (4 + 3)