callback

Django之中间件

喜你入骨 提交于 2020-02-19 08:56:46
Django中间件 在http请求 到达视图函数之前 和视图函数return之后,django会根据自己的规则在合适的时机执行中间件中相应的方法。 中间件的执行流程 1、执行完所有的request方法 到达视图函数。 2、执行中间件的其他方法 2、经过所有response方法 返回客户端。 注意:如果在其中1个中间件里 request方法里 return了值,就会执行当前中间的response方法,返回给用户 然后 报错。。不会再执行下一个中间件。 自定义中间件 1.在project下随便创建一个py文件 from django.utils.deprecation import MiddlewareMixin class Middle1(MiddlewareMixin): def process_request(self,request): print("来了") def process_response(self, request,response): print('走了') View Code 2、在setings文件中 注册这个 py文件 django项目的settings模块中,有一个 MIDDLEWARE_CLASSES 变量,其中每一个元素就是一个中间件 MIDDLEWARE = [ 'django.middleware.security

Delegates and Callbacks

二次信任 提交于 2020-02-17 08:02:36
问题 Does the term callback in the context of delegates mean ," a delegate delegating it works to another delegate inorder to finish some task " ? Example :( Based on my understanding,I have implemented a callback,correct me if it is wrong ) namespace Test { public delegate string CallbackDemo(string str); class Program { static void Main(string[] args) { CallbackDemo handler = new CallbackDemo(StrAnother); string substr = Strfunc(handler); Console.WriteLine(substr); Console.ReadKey(true); }

Delegates and Callbacks

可紊 提交于 2020-02-17 07:59:50
问题 Does the term callback in the context of delegates mean ," a delegate delegating it works to another delegate inorder to finish some task " ? Example :( Based on my understanding,I have implemented a callback,correct me if it is wrong ) namespace Test { public delegate string CallbackDemo(string str); class Program { static void Main(string[] args) { CallbackDemo handler = new CallbackDemo(StrAnother); string substr = Strfunc(handler); Console.WriteLine(substr); Console.ReadKey(true); }

迭代器模式

允我心安 提交于 2020-02-15 18:09:22
迭代器模式   迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。迭代器模式可以把迭代的过程从业务逻辑中分离出来,在使用迭代器模式之后,即使不关心对象的内部构造,也可以按顺序访问其中的每个元素。   现在流行的大部分语言如Java,Ruby等都已经有了内置的迭代器实现,许多浏览器也支持JavaScript的Array.prototype.forEach。 1. 实现自己的迭代器   现在我们来自己实现一个each函数,each函数接受2个参数,第一个为被循环的数组,第二个为循环时被触发的回调函数(接受2个参数,第1个为下标,第2个为值): var each = function (arr, callback) { for (var i = 0, l = arr.length; i < l; i++) { callback.call(arr[i], i, arr[i]); } }; each([1, 2, 3], function (i, n) { console.log(i, n);//输出:01 12 23 }); 2. 内部迭代器和外部迭代器   迭代器可以分为内部迭代器和外部迭代器,它们有各自的适用场景。这一节我们将分别讨论着两种迭代器。 1. 内部迭代器   我们刚刚编写的each函数属于内部迭代器

jQuery初学者笔记 一

≡放荡痞女 提交于 2020-02-14 20:32:00
jQuery初学者笔记 一 Mirror王宇阳 by jQuery语法 jQuery语法是通过选取HTML元素,并对选取的元素进行操作 基础语法: 所有jQuery语句用“$”符号开始 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <p>点击消失</p> <p>点击消失</p> <script src="jq/jquery-3.4.1.min.js"></script> <script> $(document).ready(function(){ //固定的jQ开头 $("p").click(function(){ // 选取p标签,并绑定clisk事件 $(this).hide(); //事件触发使用hide()方法(隐藏当前标签属性) }) }) </script> </body> </html> jQuery函数位于一个document ready函数中,我们需要在js中加载该函数文档 // jQuery入口函数 $(document).ready(function(){ //jQuery代码 }); /*******************************/ $(function(){ //jQuery代码 }); 选择器语法:

How to call function after completion of async functions inside loop?

微笑、不失礼 提交于 2020-02-13 22:25:47
问题 I have a forEach loop in NodeJS, iterating over a series of keys, the values of which are then retrieved asynchronously from Redis. Once the loop and retrieval has complete, I want to return that data set as a response. My problem at the moment is because the data retrieval is asyncrhonous, my array isn't populated when the response is sent. How can I use promises or callbacks with my forEach loop to make sure the response is sent WITH the data? exports.awesomeThings = function(req, res) {

19.python笔记之Rabbitmq

偶尔善良 提交于 2020-02-13 15:31:06
RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消 息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。 RabbitMQ安装 1.linux 安装配置epel源 $ rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm 安装erlang $ yum -y install erlang 安装RabbitMQ $ yum -y install rabbitmq-server service rabbitmq-server start/stop 2.安装python API pip install pika or easy_install pika 先来一个基于Queue实现生产者消费者模型试试水 #!/usr/bin/env python3 #coding:utf8

js的单线程和异步

泄露秘密 提交于 2020-02-11 06:25:55
引用 :https://www.cnblogs.com/woodyblog/p/6061671.html 前言 说到js的单线程(single threaded)和异步(asynchronous),很多同学不禁会想,这不是自相矛盾么?其实,单线程和异步确实不能同时成为一个语言的特性。js选择了成为单线程的语言,所以它本身不可能是异步的,但js的宿主环境(比如浏览器,Node)是多线程的,宿主环境通过某种方式(事件驱动,下文会讲)使得js具备了异步的属性。往下看,你会发现js的机制是多么的简单高效! 说说浏览器 js是单线程语言,浏览器只分配给js一个主线程,用来执行任务(函数),但一次只能执行一个任务,这些任务形成一个任务队列排队等候执行,但前端的某些任务是非常耗时的,比如网络请求,定时器和事件监听,如果让他们和别的任务一样,都老老实实的排队等待执行的话,执行效率会非常的低,甚至导致页面的假死。所以,浏览器为这些耗时任务开辟了另外的线程,主要包括http请求线程,浏览器定时触发器,浏览器事件触发线程,这些任务是异步的。下图说明了浏览器的主要线程。 图片来自popAnt 画得太好,忍不住引过来 ( http://blog.csdn.net/kfanning/article/details/5768776 ) 再说说任务队列 刚才说到浏览器为网络请求这样的异步任务单独开了一个线程

js的单线程和异步

折月煮酒 提交于 2020-02-11 06:23:18
前言 说到js的单线程(single threaded)和异步(asynchronous),很多同学不禁会想,这不是自相矛盾么?其实,单线程和异步确实不能同时成为一个语言的特性。js选择了成为单线程的语言,所以它本身不可能是异步的,但js的宿主环境(比如浏览器,Node)是多线程的,宿主环境通过某种方式(事件驱动,下文会讲)使得js具备了异步的属性。往下看,你会发现js的机制是多么的简单高效! 说说浏览器 js是单线程语言,浏览器只分配给js一个主线程,用来执行任务(函数),但一次只能执行一个任务,这些任务形成一个任务队列排队等候执行,但前端的某些任务是非常耗时的,比如网络请求,定时器和事件监听,如果让他们和别的任务一样,都老老实实的排队等待执行的话,执行效率会非常的低,甚至导致页面的假死。所以,浏览器为这些耗时任务开辟了另外的线程,主要包括http请求线程,浏览器定时触发器,浏览器事件触发线程,这些任务是异步的。下图说明了浏览器的主要线程。 图片来自popAnt 画得太好,忍不住引过来 ( http://blog.csdn.net/kfanning/article/details/5768776 ) 再说说任务队列 刚才说到浏览器为网络请求这样的异步任务单独开了一个线程,那么问题来了,这些异步任务完成后,主线程怎么知道呢?答案就是回调函数,整个程序是事件驱动的

高阶函数

戏子无情 提交于 2020-02-09 09:38:38
高阶函数是至少满足下列条件之一的函数 函数可以作为参数被传递 函数可以作为返回值输出 (js这么好的语言中的函数当然满足 ^ ^)_ 函数作为参数传递 把函数当作参数传递,可以抽离出一部分容易变化的业务逻辑,把这部分业务逻辑放在函数中,可以分离业务代码中变与不变的部分。 回调函数,ajax异步,callback var getUserInfo() = function(userId, callback) { $.ajax('http://xxx.com/getUserInfo?' + userId, function(data) { if (typeof(callback === 'function') { callback(data); } }); } getUserInfo(13157, function(data) { alert(data.user); }) 高阶函数实现AOP AOP(面向切面编程),把一些跟核心业务逻辑模块无关的功能抽离出来(通常包括日志统计,安全控制,异常处理等) Function.prototype.before = function(beforefn) { var __self = this; //保存原函数的引用 return function() { //返回包含原函数和新函数的“代理”函数 beforefn.apply(this,