回调函数

jquery ajax请求后台 的简单例子

别来无恙 提交于 2020-01-14 06:50:44
jQuery.ajax(url,[settings]) 概述 通过 HTTP 请求加载远程数据。 jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该函数,除非你需要操作不常用的选项,以获得更多的灵活性。 最简单的情况下,$.ajax()可以不带任何参数直接使用。 注意 ,所有的选项都可以通过$.ajaxSetup()函数来全局设置。 回调函数 如果要处理$.ajax()得到的数据,则需要使用回调函数。beforeSend、error、dataFilter、success、complete。 beforeSend 在发送请求之前调用,并且传入一个XMLHttpRequest作为参数。 error 在请求出错时调用。传入XMLHttpRequest对象,描述错误类型的字符串以及一个异常对象(如果有的话) dataFilter 在请求成功之后调用。传入返回的数据以及"dataType"参数的值。并且必须返回新的数据(可能是处理过的)传递给success回调函数。 success 当请求之后调用。传入返回后的数据,以及包含成功代码的字符串。 complete 当请求完成之后调用这个函数,无论成功或失败。传入XMLHttpRequest对象

ES6_Promise 对象 阮一锋

为君一笑 提交于 2020-01-13 16:35:12
Promise的含义 promise是异步编程的一种解决方法,比传统的回调函数和事件更合理更强大 。他由社区最早提出和实现,ES6将其写进语言标准,统一了用法,原生提供了promise对象。 所谓promise,简单说是一个容器, 里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果 ,从语法上说, promise是一个对象 ,从它可以获取异步操作的消息,promise提供了统一的API,各种异步操作都可以用同样的方法进行处理。 promise对象的特点 (1)对象的状态不受外界影响,promise对象代表一个异步操作,有三种状态, pending(进行中)、fulfilled(已成功)、rejected(已失败) 。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态,这也是promise这个名字的由来“承若”; (2)一旦状态改变就不会再变,任何时候都可以得到这个结果,promise对象的状态改变,只有两种可能:从pending变为fulfilled,从pending变为rejected。这时就称为resolved(已定型)。如果改变已经发生了,你再对promise对象添加回调函数,也会立即得到这个结果,这与事件(event)完全不同,事件的特点是:如果你错过了它,再去监听是得不到结果的。 有了Promise对象

c# 异步编程笔记

余生长醉 提交于 2020-01-13 06:32:27
   第一步:定义委托 第二步:根据委托的定义,创建一个方法 第三部:创建委托变量 第四部:在窗口初始化中委托变量方法 第五步:开始异步,设置回调函数 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace 异步编程 { public partial class Form1 : Form { public Form1() { InitializeComponent(); /*第四步*/ this.objdeleTask = new deleTask(Task1);//初始化委托的方法 /* 或者用匿名的方法 * this.objdeleTask = (num, ms) => { System.Threading.Thread.Sleep(ms); return num * num; };*/ } /*第一步*/ public delegate int deleTask(int num, int

Node.js的循环与异步问题

我只是一个虾纸丫 提交于 2020-01-12 16:41:32
Node.js 的异步机制由事件和回调函数实现,一开始接触可能会感觉违反常规,但习惯  以后就会发现还是很简单的。然而这之中其实暗藏了不少陷阱,一个很容易遇到的问题就是  循环中的回调函数,初学者经常容易陷入这个圈套。让我们从一个例子开始说明这个问题。 var fs = require('fs'); var files = ['a.txt', 'b.txt', 'c.txt'];   for (var i = 0; i < files.length; i++) {   fs.readFile(files[i], 'utf-8', function (err, contents) {   console.log(files[i] + ': ' + contents);    }); } 这段代码的功能很直观,就是依次读取文件 a.txt、b.txt 、c.txt ,并输出文件名和内容。假设这三个文件的内容分别是 AAA 、BBB 和 CCC,那么我们期望的输出结果就是:   a.txt: AAA   b.txt: BBB   c.txt: CCC 可是我们运行这段代码的结果是怎样的呢?竟然是这样的结果:   undefined: AAA   undefined: BBB   undefined: CCC 这个结果说明文件内容正确输出了,而文件名却不对,也就意味着,contents

$.ajax()方法详解

只谈情不闲聊 提交于 2020-01-12 15:59:58
$.ajax()方法详解 1.url : 要求为String类型的参数,(默认为当前页地址)发送请求的地址。 2.type : 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持。 3.timeout : 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局设置。 4.async : 要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为false。注意,同步请求将锁住浏览器,用户其他操作必须等待请求完成才可以执行。 5.cache : 要求为Boolean类型的参数,默认为true(当dataType为script时,默认为false),设置为false将不会从浏览器缓存中加载请求信息。 6.data : 要求为Object或String类型的参数,发送到服务器的数据。如果已经不是字符串,将自动转换为字符串格式。get请求中将附加在url后。防止这种自动转换,可以查看  processData选项。对象必须为key/value格式,例如{foo1:"bar1",foo2:"bar2"}转换为&foo1=bar1&foo2=bar2。如果是数组

$.ajax()方法参数详解

梦想与她 提交于 2020-01-12 15:59:43
$.ajax()方法是jQuery最底层的Ajax实现。它的结构为:    $.ajax(options) 该方法只有一个参数,但是这个对象里包含了$.ajax()方法所需要的请求设置以及回调函数等信息,参数以key/value的形式存在,所有的参数都是可选的。常用参数见下表: 1.url 要求为String类型的参数,(默认为当前地址)发送请求的页面。 2.type 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持。 3.timeout 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局设置。 4.async 要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。如果需要同步请求,请将此选项设置为false。注意,同步请求将锁住浏览器,用户其他操作必须等待请求完成才可以执行。 5.cache 要求为Boolean类型的参数,默认为true(当dataType为Script时,默认为false),设置false将不会从浏览器缓存中加载请求信息。 6.data 要求为Object或String类型的参数,发送到服务器的数据。如果不是字符串,将自动转换为字符串格式。get请求中将附加在URL后。防止这种自动转换

消息回调

廉价感情. 提交于 2020-01-12 05:30:09
0. 项目结构 rabbitmq04 rabbitmq-provider rabbitmq-consumer common 1. 什么是消息回调 消息回调,其实就是消息确认(生产者推送消息成功,消费者接收消息成功) 2. 为什么要进行消息确认 经常会听到丢消息的字眼, 对于程序来说,发送者没法确认是否发送成功,消费者处理失败也无法反馈, 没有消息确认机制,就会出现消息莫名其妙的没了,也不知道什么情况 3. 生产者推送消息[确认] 0.前提:使用直连交换机完成消息的发送和接收 1.在rabbitmq-provider项目的application.yml文件上,添加消息确认的配置项 #1.开启 confirm 确认机制 spring.rabbitmq.publisher-confirms=true #2.开启 return 确认机制 spring.rabbitmq.publisher-returns=true #3.设置开启Mandatory,才能触发回调函数,无论消息推送结果怎么样都强制调用回调函数 spring.rabbitmq.template.mandatory=true server : port : 8081 servlet : context-path : /rabbitmq - provider spring : rabbitmq : virtual-host : /

AMD规范

坚强是说给别人听的谎言 提交于 2020-01-12 02:44:03
AMD规范的总结整理 学习参考网址:http://www.ruanyifeng.com/blog/2012/11/require_js.html 1、什么是AMD AMD规范全称是Asynchronous Module Definition,即异步模块加载机制。它完整描述了模块的定义,依赖关系,引用关系以及加载机制。 AMD对应的就是很有名的RequireJS 2、require.js的使用 a、去 requirejs官网 下载最新版本 b、引用 < script src = "js/require.js" data - main = "js/main" > < / script > //data-main属性的作用是,指定网页程序的主模块,它会在require.js加载完成后首个加载 c、语法 define ( [ id ] , [ dependencies ] , factory ) 参数: id:可选,字符串类型,定义模块标识,如果没有提供参数,默认为文件名 dependencies:可选,字符串数组,AMD 推崇依赖前置,即当前模块依赖的其他模块,模块依赖 必须在真正执 行具体的factory方法前解决 factory:必需,工厂方法,初始化模块需要执行的函数或对象。如果为函数,它只被执行一次。如果是对象,此对象会作为模块的输出值。 3、模块的写法

怎么理解回调函数?

爱⌒轻易说出口 提交于 2020-01-11 11:51:06
回调函数是什么? 首先它不是一个单独的函数,而是一个函数的过程。 按照我的理解,可以将这个过程分为三个函数构成。 起始函数 (调用中间函数) 中间函数 (其参数里面需要传入一个函数(方法),以便在合适的时候调用) 回调函数 (即在中间函数里传入的函数) 传入函数的过程可以成为 登记回调函数 按照函数调用的方式来理解 ,整个过程可以是,回调函数就像一个方法,在我的起始函数里面需要借助中间函数在不同的时机,通过调用不同的方法来解决不同的问题。 按照不同的抽象层来理解 :起始函数和回调函数都是高层函数,中间函数类似于底层函数,整个过程就是,高层函数调用底层函数,底层函数又回过头来调用高层函数。我觉得这就是回调函数的得名之处。 参考:https://www.zhihu.com/question/19801131 来源: CSDN 作者: 晨风先生 链接: https://blog.csdn.net/qq_40089560/article/details/103934068

node.js 回调函数和事件

微笑、不失礼 提交于 2020-01-11 08:00:54
node里面有阻塞式编程和线程式编程 阻塞式编程可以简单理解为传统的面向过程式的编程,程序是一句一句往下执行的。而线程式也就是使用了node里面的回调函数进行函数的调用,会把需要执行的函数执行,但是程序不会等这个函数执行完之后才能往下走,而是直接往下走。 setTimeout ( ( ) => { console . log ( "Function" ) ; } , 1000 ) console . log ( 'begin....' ) ; 像上面这一句如果是传统的语言类似C系 # include <iostream> using namespace std ; void show ( ) { cout << "functoin" << endl ; } int main ( ) { show ( ) ; cout << "begin" << endl ; } 输出会是 function begin… 但是在使用回调函数会是 begin… Function node 里面的事件 var EventEmitter = require ( 'events' ) . EventEmitter ; var event = new EventEmitter ( ) ; event . on ( 'event_name' , ( ) => { console . log ( 'this is