回调函数

Express框架的整体感知

怎甘沉沦 提交于 2020-02-11 04:39:52
Express 是基于 node.js 平台的快速、开放、极简的 web 开放框架,它的地位与作用有点类似于前端的 jquery 框架。它的英文官网地址为 http://expressjs.com ,其对应的中文官网地址为 http://www.expressjs.com.cn 。下面来简单介绍这个框架的用法。 一、下载及引包 express 作为一个第三方模块包,同样是通过 npm 的方式进行下载,在当前的项目文件夹下,用命令 -> npm install express 来完成下载。再通过 const express = require('express'); 来完成引包。 二、express提供创建http服务器的功能 当使用了 express 这个模块包之后,不再需要引用 node 的 http 模块,也能提供创建 http 服务器的功能。其基本的代码段结构为: const express = require('express'); var app = express(); app.get('/',(req,res)=>{ res.send(''); }); app.listen(3000,'192.168.155.1'); 引包之后返回一个函数体,将该函数体调用执行之后的返回值用 app 来接收。 app 类似于创建的那个 http 服务器实例,该服务器监听IP地址为

函数指针与回调函数

百般思念 提交于 2020-02-11 02:19:02
函数指针与回调函数 函数指针 函数指针是指向函数的指针变量。 通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函数。 函数指针可以像一般函数一样,用于调用函数、传递参数。 函数指针变量的声明: typedef int (*fun_ptr)(int,int); // 声明一个指向同样参数、返回值的函数指针类型 eg: #include<bits/stdc++.h> using namespace std; int max(int a, int b) { return a > b ? a : b; } int main() { int (*p)(int, int) = &max; int a = 2, b = 1, c = 3, d = 0; cout << p(a, b) << endl; } 回调函数 回调函数是指函数指针作为某个函数的参数 函数指针变量可以作为某个函数的参数来使用的,回调函数就是一个通过函数指针调用的函数。 简单讲:回调函数是由别人的函数执行时调用你实现的函数。 #include<bits/stdc++.h> using namespace std; void populate_array(int *array, int arraySize, int (*getNextValue)(void)) { for (int i = 0; i <

PHP学习笔记06-静态变量、回调函数、匿名函数、闭包

余生颓废 提交于 2020-02-10 20:53:03
1.静态变量修饰符static 使用static修饰变量可以使函数之间跨函数共享数据 如上图所示,static修饰变量b后,调用三次函数,变量b的值都在增加,而没有static修饰的变量a,每次调用的变量都是1。 2.可变函数 假如变量的值是一个函数名称,则可以直接在改变量之后加上括号即可调用改函数。 3.回调过程和回调函数 我们一般把一个函数传入给另一个函数去使用,这个过程称之为回调函数,而被传入的函数叫回调函数。 函数sys_num我们可以称之为回调函数。 4.匿名函数 匿名函数就是没有函数名的函数。 变量保存匿名函数,实际上得到的是一个对象。 5.闭包 闭包实际上就是提供了一个环境,使内部匿名函数可以访问局部变量。 没有使用闭包时: 使用闭包时: 使用use关键字可以让变量不会被释放,提供一个环境给匿名函数使用。 来源: CSDN 作者: weiweiQAQ 链接: https://blog.csdn.net/qq_42062052/article/details/104225072

python 池 协程

前提是你 提交于 2020-02-09 16:58:53
# 有多少个任务就开多少个进程或者线程# 什么是池 # 要在程序开始的时候,还没提交任务先创建几个线程或者进程 # 放在一个池子里,这就是池# 为什么要用池? # 如果先开好进程/线程,那么有任务之后就可以直接使用这个池中的数据了 # 并且开好的线程或者进程会一直存在在池中,可以被多个任务反复利用 # 这样极大的减少了开启\关闭\调度线程/进程的时间开销 # 池中的线程/进程个数控制了操作系统需要调度的任务个数,控制池中的单位 # 有利于提高操作系统的效率,减轻操作系统的负担# 发展过程# threading模块 没有提供池# multiprocessing模块 仿照threading写的 Pool# concurrent.futures模块 线程池,进程池都能够用相似的方式开启\使用# 线程池# import time# import random# from threading import current_thread# from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor# def func(a,b):# print(current_thread().ident,'start',a,b)# time.sleep(random.randint(1,4))# print(current

微信小程序操作反馈

試著忘記壹切 提交于 2020-02-09 16:49:55
博客简介 本篇博客介绍微信小程序中界面与用户交互响应用户的操作进行反馈的方法,包括4类反馈: 显示消息提示框wx.showToast 显示模态对话框wx.showModal 显示 loading 提示框wx.showLoading 显示操作菜单wx.showActionSheet 显示消息提示框wx.showToast wx.showToast用于显示消息提示框,提示用户操作的状态 wx.showToast参数信息: 属性 类型 默认值 必填 说明 itemList Array.<string> 是 按钮的文字数组,数组长度最大为 6 itemColor string #000000 否 按钮的文字颜色 success function 否 接口调用成功的回调函数 fail function 否 接口调用失败的回调函数 complete function 否 接口调用结束的回调函数(调用成功、失败都会执行) object.success 回调函数 参数 Object res 属性 类型 说明 tapIndex number 用户点击的按钮序号,从上到下的顺序,从0开始 使用方法 //wxml < button size = "mini" bindtap = "showActionSheetFunc" > showActionSheet显示菜单 < / button > /

提升篇:Javascript异步编程

爷,独闯天下 提交于 2020-02-09 07:54:59
你可能知道,Javascript语言的执行环境是"单线程"(single thread)。   所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。   这种模式的好处是实现起来比较简单,执行环境相对单纯;坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的浏览器无响应(假死),往往就是因为某一段Javascript代码长时间运行(比如死循环),导致整个页面卡在这个地方,其他任务无法执行。   为了解决这个问题,Javascript语言将任务的执行模式分成两种:同步(Synchronous)和异步(Asynchronous)。   "同步模式"就是上一段的模式,后一个任务等待前一个任务结束,然后再执行,程序的执行顺序与任务的排列顺序是一致的、同步的;"异步模式"则完全不同,每一个任务有一个或多个回调函数(callback),前一个任务结束后,不是执行后一个任务,而是执行回调函数,后一个任务则是不等前一个任务结束就执行,所以程序的执行顺序与任务的排列顺序是不一致的、异步的。   "异步模式"非常重要。在浏览器端,耗时很长的操作都应该异步执行,避免浏览器失去响应,最好的例子就是Ajax操作。在服务器端,"异步模式"甚至是唯一的模式,因为执行环境是单线程的,如果允许同步执行所有http请求

再次理解JSONP

久未见 提交于 2020-02-08 23:48:00
window.callback = function(result) { console.log(result); }; var JSONP = document.createElement('script'); JSONP.type = 'text/javascript'; JSONP.src = "https://opendata.baidu.com/api.php?query=%E5%85%A8%E5%9B%BD&resource_id=39258&tn=wisetpl&format=json&cb=" + callback; document.getElementsByTagName("head")[0].appendChild(JSONP); 理解如下: 1、jsonp的原来就是动态向html中插入script标签 2、此script标签的src是请求的接口,因为src是get的请求方式,所以jsonp只适合用于get请求 3、src链接后面的cb回调函数,是需要和后台协商一致的,后台会把数据当做回调函数的参数传进来,所以jsonp是需要后台配合的 4、由于script标签使用src引入资源,在当前页面中是会直接执行的,所以等结果请求返回之后,cb回调函数就是立即执行,拿到后台的数据 至此完毕 来源: https://www.cnblogs.com/gopark/p

Javascript异步编程的4种方法

断了今生、忘了曾经 提交于 2020-02-07 07:19:53
你可能知道,Javascript语言的执行环境是" 单线程 "(single thread)。 所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。 这种模式的好处是实现起来比较简单,执行环境相对单纯;坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的浏览器无响应(假死),往往就是因为某一段Javascript代码长时间运行(比如死循环),导致整个页面卡在这个地方,其他任务无法执行。 为了解决这个问题,Javascript语言将任务的执行模式分成两种: 同步 (Synchronous)和 异步 (Asynchronous)。 "同步模式"就是上一段的模式,后一个任务等待前一个任务结束,然后再执行,程序的执行顺序与任务的排列顺序是一致的、同步的;"异步模式"则完全不同,每一个任务有一个或多个回调函数(callback),前一个任务结束后,不是执行后一个任务,而是执行回调函数,后一个任务则是不等前一个任务结束就执行,所以程序的执行顺序与任务的排列顺序是不一致的、异步的。 "异步模式"非常重要。在浏览器端,耗时很长的操作都应该异步执行,避免浏览器失去响应,最好的例子就是Ajax操作。在服务器端,"异步模式"甚至是唯一的模式,因为执行环境是单线程的,如果允许同步执行所有http请求

通俗理解回调函数

淺唱寂寞╮ 提交于 2020-02-06 08:37:25
回调函数总是听起来很蛋疼,对吧。 一句话解释回调函数: A是程序员方,B是系统方。 A调用B的模块,这叫"调用" B调用A的模块,这叫"调用回去",简称,回调。 意思是: A中设定的某个模块,"被系统调用回去",即"被系统回调",这个就叫回调函数。 同样的,上面的系统方也可以是服务端,上面的程序员方可以是客户端。 在其他很多技术场景都有回调函数的存在,理解的关键是:调用与被调用关系是否颠倒,你可以理解为反客为主就是回调。 来源: CSDN 作者: 东方朔盗仙桃 链接: https://blog.csdn.net/appleyuchi/article/details/103652818

Javascript异步编程的常用方法

主宰稳场 提交于 2020-02-06 06:01:46
Javascript语言的执行环境是"单线程"(single thread)。所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。 这种模式的好处是实现起来比较简单,执行环境相对单纯;坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的浏览器无响应(假死),往往就是因为某一段Javascript代码长时间运行(比如死循环),导致整个页面卡在这个地方,其他任务无法执行。 为了解决这个问题,Javascript语言将任务的执行模式分成两种:同步(Synchronous)和异步(Asynchronous)。 "同步模式"就是上一段的模式,后一个任务等待前一个任务结束,然后再执行,程序的执行顺序与任务的排列顺序是一致的、同步的; "异步模式"则完全不同,每一个任务有一个或多个回调函数(callback),前一个任务结束后,不是执行后一个任务,而是执行回调函数,后一个任务则是不等前一个任务结束就执行,所以程序的执行顺序与任务的排列顺序是不一致的、异步的。 "异步模式"非常重要。在浏览器端,耗时很长的操作都应该异步执行,避免浏览器失去响应,最好的例子就是Ajax操作。在服务器端,"异步模式"甚至是唯一的模式,因为执行环境是单线程的,如果允许同步执行所有http请求,服务器性能会急剧下降