您当前的位置:首页 > 互联网教程

jscallback

发布时间:2025-05-21 02:51:59    发布人:远客网络

jscallback

一、jscallback

js中callback是什么呢?不知道的小伙伴来看看小编今天的分享吧!

一个被当做参数的函数,即为回调函数。

在JS中万物皆为对象。函数本身也是一个对象,既然是对象,所以函数当然可以当做函数的参数。

如上述代码,fun函数就是一个对象。

上述代码中,fun2做为fun1的参数,fun2即为回调函数。

几乎所有的第三方函数我们都无法修改函数的内部实现,比如数组的forEach,map等。那么我们也就无法在这样的函数体中,调用自己所写的功能模块。所以此时,回调函数就提供了这样的能力,使我们可以将自己所书写的函数传入第三方函数中,从而实现完整的功能。

通过冒泡排序,来展示回调函数的使用方式。

函数bubbleSort拥有一个参数callBack,而smallToLarge与LargeTosmall均为回调函数,当我们在bubbleSort函数调用时,传入smallToLarge与LargeTosmall就可以非常方便的控制排序的规则。

以上就是小编今天的分享了,希望可以帮助到大家。

二、node.js 有哪些全局对象

1、global最根本的作用是作为全局变量的宿主。按照ECMAScript的定义,满足以下条件的变量是全局变量:

2、隐式定义的变量(未定义直接赋值的变量)。

3、当你定义一个全局变量时,这个变量同时也会成为全局对象的属性,反之亦然。需要注意的是,在Node.js中你不可能在最外层定义变量,因为所有用户代码都是属于当前模块的,而模块本身不是最外层上下文。

4、注意:永远使用var定义变量以避免引入全局变量,因为全局变量会污染命名空间,提高代码的耦合风险。

5、process是一个全局变量,即 global对象的属性。

6、它用于描述当前Node.js进程状态的对象,提供了一个与操作系统的简单接口。通常在你写本地命令行程序的时候,少不了要和它打交道。下面将会介绍process对象的一些最常用的成员方法。

7、process.argv是命令行参数数组,第一个元素是 node,第二个元素是脚本文件名,从第三个元素开始每个元素是一个运行参数。

8、将以上代码存储为argv.js,通过以下命令运行:

9、$ node argv.js 1991 name=byvoid--v"Carbo Kuo"

10、'/home/byvoid/argv.js',

11、process.stdout是标准输出流,通常我们使用的 console.log()向标准输出打印字符,而 process.stdout.write()函数提供了更底层的接口。

12、process.stdin是标准输入流,初始时它是被暂停的,要想从标准输入读取数据,你必须恢复流,并手动编写流的事件响应函数。

13、process.stdin.on('data', function(data){

14、process.stdout.write('read from console:'+ data.toString());

15、process.nextTick(callback)的功能是为事件循环设置一项任务,Node.js会在下次事件循环调响应时调用 callback。

16、初学者很可能不理解这个函数的作用,有什么任务不能在当下执行完,需要交给下次事件循环响应来做呢?

17、我们讨论过,Node.js适合I/O密集型的应用,而不是计算密集型的应用,因为一个Node.js进程只有一个线程,因此在任何时刻都只有一个事件在执行。

18、如果这个事件占用大量的CPU时间,执行事件循环中的下一个事件就需要等待很久,因此Node.js的一个编程原则就是尽量缩短每个事件的执行时间。process.nextTick()提供了一个这样的工具,可以把复杂的工作拆散,变成一个个较小的事件。

19、functiondoSomething(args, callback){

20、我们假设compute()和somethingComplicated()是两个较为耗时的函数,以上的程序在调用

21、doSomething()时会先执行somethingComplicated(),然后立即调用回调函数,在 onEnd()中又会执行

22、compute()。下面用process.nextTick()改写上面的程序:

23、functiondoSomething(args, callback){

24、改写后的程序会把上面耗时的操作拆分为两个事件,减少每个事件的执行时间,提高事件响应速度。

25、注意:不要使用setTimeout(fn,0)代替process.nextTick(callback),前者比后者效率要低得多。

26、我们探讨了process对象常用的几个成员,除此之外process还展示了process.platform、 process.pid、process.execPath、process.memoryUsage()等方法,以及POSIX进程信号响应机制。

27、console用于提供控制台标准输出,它是由Internet Explorer的JScript引擎提供的调试工具,后来逐渐成为浏览器的事实标准。

28、Node.js沿用了这个标准,提供与习惯行为一致的 console对象,用于向标准输出流(stdout)或标准错误流(stderr)输出字符。 console.log():向标准输出流打印字符并以换行符结束。

29、console.log接受若干个参数,如果只有一个参数,则输出这个参数的字符串形式。如果有多个参数,则以类似于C语言 printf()命令的格式输出。

30、第一个参数是一个字符串,如果没有参数,只打印一个换行。

31、console.log('Hello world');

32、console.log('byvoid%diovyb');

33、console.log('byvoid%diovyb', 1991);

34、console.error():与console.log()用法相同,只是向标准错误流输出。

35、console.trace():向标准错误流输出当前的调用栈。

36、at Object.<anonymous>(/home/byvoid/consoletrace.js:1:71)

37、at Module._compile(module.js:441:26)

38、at Object..js(module.js:459:10)

39、at Module.load(module.js:348:31)

40、at Function._load(module.js:308:12)

41、at EventEmitter._tickCallback(node.js:192:40)

三、小程序不同页面的异步回调,callback和promise的使用讲解

1、针对小程序中页面间异步数据处理的问题,本文将介绍两种常用的解决方案:callback和promise。首先,我们来探讨回调的用法。当你在app.js中发起请求,获取数据后,通常的做法是定义一个回调函数作为参数,这个函数会在数据获取成功或失败时被调用,从而传递回数据。这就像在两个页面之间建立一个“监听者”机制,当一个页面获取到数据后,会立即通知另一个页面。然而,如果觉得这种方法过于复杂,可以考虑使用promise来简化流程。

2、promise的优势在于它能直接将数据处理和使用关联起来,无需复杂的回调嵌套。在app.js中,可以定义一个返回promise的方法,而在index.js中,只需简单调用这个方法即可。这样,数据的请求和使用仿佛在同一页面完成,实现起来更为直观和整洁。下面,让我们通过实例代码来详细了解这两种方法的实现过程。

3、在app.js中,代码可能会像这样定义promise方法:

4、而在index.js中,调用方式如下:

5、希望通过这篇文章,帮助大家理解如何在小程序的不同页面间有效地处理异步回调,无论是通过callback还是promise,都能让数据的获取和使用变得更加顺畅。完整的代码示例可供参考,方便你在实际开发中运用。