回调函数

Node之使用dgram模块实现基于UDP的数据通信

别说谁变了你拦得住时间么 提交于 2020-02-01 01:06:55
使用dgram模块实现基于UDP的数据通信 TCP是一种基于连接的协议,在进行通信前,首先要求客户端与服务器端建立一条用于通信的连接。而UDP是一种面向非连接的协议,在进行通信前,不要求首先建立客户端与服务器端之间的连接,可以直接把数据包发送给对方。基于这个原因,UPD也是一种不可靠的协议,但是其传输速度比TCP更快,因此更适用于实时通信的场合。 在Node.js中,提供了dgram模块,用于创建UPD服务器与客户端,以及实现UDP服务器与客户端之间的通信。 创建UDP服务器与客户端 在dgram模块中,可以使用createSocket方法创建一个用于实现UDP通信的socket端口对象 var socket=dgram.createSocket(type,[callback]) type:用于指定进行UDP通信时使用的协议类型,可指定值为“upd4”或“upd6”。 callback:用于指定当从该端口接收到数据时调用的回调函数,在该回调函数中,可以使用两个参数。msg参数值为一个Buffer对象,其中存放了接收到的数据。rinfo参数值也为一个对象,该对象所具有的属性及属性值如下: address:属性值为发送者所使用的地址,例如127.0.0.1。 family:属性值为一个标识了发送者所使用的地址是IPv4地址还是IPv6地址的字符串,例如“IPv4”。 port

JS回调函数

让人想犯罪 __ 提交于 2020-02-01 00:44:33
1.回调函数的使用 $scope.callbace = function(suc){ var par = '回调参数'; suc(par); } $scope.callbace(function (par) { console.log("输出参数......"); console.log(par) }); 2.截图 来源: https://www.cnblogs.com/lingtiaoti/p/12247335.html

mongo document文档对象方法

送分小仙女□ 提交于 2020-01-31 20:33:07
document文档方法 增删改时,回调函数中返回的文档对象就是Model的实例,即Model中#的方法,文档对象都能.使用 创建一个文档对象 var xx=new mongoose.model('集合名',schema)的对象({schema中设置的形式补充内容}) 方法: 文档对象.save(回调函数(err对象)); 将文档对象保存进数据库 文档对象.update({$set:{修改内容}},回调函数(err对象)); 修改文档对象属性 文档对象.字段=值; 修改文档对象属性 文档对象.remove(回调函数(err对象)); 删除自己 文档对象.toObject(); 将文档对象转换成js对象 代码示例: /** * Created by 10853 on 2020/1/31. */ //mongoose var mongoose = require ( 'mongoose' ) ; mongoose . connect ( 'mongodb://localhost/play' , { useNewUrlParser : true , useUnifiedTopology : true } ) ; //schema var schema = mongoose . Schema ; var stuSch = new schema ( { name : String , age

回调函数+同步异步函数

守給你的承諾、 提交于 2020-01-31 18:02:04
这里介绍下回调函数应用场景,同时涉及到的有同步异步处理 函数也是一种数据类型,既可以当做参数进行传递,也可以当做方法的返回值  1、参数  2、返回值 注意: 一般情况下,把函数当做参数传递,就是为了获取函数内部的异步操作结果 (1)同步函数    (2)异步函数   详见下节文章 (3) (4) . 来源: https://www.cnblogs.com/jianxian/p/12245927.html

node 文件的同步、异步写入

折月煮酒 提交于 2020-01-31 11:18:25
文件系统 (1)通过node来操作系统中的文件 (2)使用前要先引入fs核心模块,直接require引入,无需下载 操作文件系统两种方式 同步文件系统会阻塞程序,除非操作完成,不会执行下面代码 异步文件系统不会阻塞程序,而是在操作完成后通过回调函数返回结果 文件的同步写入 (1)fs.openSync(path,flags,mode)返回一个文件特殊值,可通过返回值对文件进行操作 path:路径 flags:打开文件操作的类型 'r':只读 'w':只写 mode:文件权限,一般针对linux,可不写 (2)fs.writeSync(文件特殊值,'写入内容',距离首部距离数值/可选,'字符编码格式默认为utf-8'/可选); (3)fs.closeSync(文件特殊值); //保存并关闭文件,减小服务器开销,否则会一直占用服务器 以追加方式 fs.appendFileSync(路径,'内容'); 文件的异步写入 (1)fs.open(路径,文件操作类型,回调函数function(err,fd){ 回调函数有两个参数,err错误对象,没有为null,fd文件描述符 可通过arguments查看 }); 'r':只读 'w':只写 //没有文件会自动创建一个文件 注意:**必须在打开函数的回调函数中写** (2)fs.write(文件描述符,'内容',距首部位置数值/可选,编码格式

ViewTreeObserver简介

无人久伴 提交于 2020-01-31 09:25:46
转 http://blog.sina.com.cn/s/blog_4b93170a0102e2n3.html Android ViewTreeObserver简介 一、结构 public final class ViewTreeObserver extends Object java.lang.Object android.view.ViewTreeObserver 二、概述      这是一个注册监听视图树的观察者(observer),在视图树种全局事件改变时得到通知。这个全局事件不仅还包括整个树的布局,从绘画过程开始,触摸模式的改变等。ViewTreeObserver不能够被应用程序实例化,因为它是由视图提供,参照getViewTreeObserver()以查看更多信息。 三、内部类      1 interface ViewTreeObserver.OnGlobalFocusChangeListener 2   //当在一个视图树中的焦点状态发生改变时,所要调用的回调函数的接口类 3 4   interface ViewTreeObserver.OnGlobalLayoutListener 5   //当在一个视图树中全局布局发生改变或者视图树中的某个视图的可视状态发生改变时,所要调用的回调函数的接口类 6 7   interface ViewTreeObserver

JS数组去重方法

旧城冷巷雨未停 提交于 2020-01-31 06:00:56
filter,它用于把 Array 的某些元素过滤掉,然后返回剩下的元素。 和 map() 类似, Array 的 filter() 也接收一个函数。和 map() 不同的是, filter() 把传入的函数依次作用于每个元素,然后根据返回值是 true 还是 false 决定保留还是丢弃该元素。 var r, arr = [1,2,3,4,5,1,2,3,4,5]; r = arr.filter(function (element, index, self) { return self.indexOf(element) === index; }); indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。再出现,索引不等删除 回调函数 filter() 接收的回调函数,其实可以有多个参数。通常我们仅使用第一个参数,表示 Array 的某个元素。回调函数还可以接收另外两个参数,表示元素的位置和数组本身: var arr = ['A', 'B', 'C']; var r = arr.filter(function (element, index, self) { console.log(element); // 依次打印'A', 'B', 'C' console.log(index); // 依次打印0, 1, 2 console.log(self); //

Promise对象的简单使用

安稳与你 提交于 2020-01-31 00:30:41
描述 异步和同步 异步,操作之间没有关系,同时执行多个操作, 代码复杂 同步,同时只能做一件事,代码简单 Promise 对象 用同步的方式来书写异步代码 Promise 让异步操作写起来,像在写同步操作的流程,不必一层层地嵌套回调函数 改善了可读性,对于多层嵌套的回调函数很方便 充当异步操作与回调函数之间的中介,使得异步操作具备同步操作的接口 Promise 也是一个构造函数 接受一个回调函数f1作为参数,f1里面是异步操作的代码 返回的p1就是一个 Promise 实例 所有异步任务都返回一个 Promise 实例 Promise 实例有一个then方法,用来指定下一步的回调函数 function f1 ( resolve , reject ) { // 异步代码... } var p1 = new Promise ( f1 ) ; p1 . then ( f2 ) ; // f1的异步操作执行完成,就会执行f2。 Promise 使得异步流程可以写成同步流程 // 传统写法 step1 ( function ( value1 ) { step2 ( value1 , function ( value2 ) { step3 ( value2 , function ( value3 ) { step4 ( value3 , function ( value4 ) { // ...

ajax发送请求

安稳与你 提交于 2020-01-30 19:36:36
前言 AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。 AJAX 不是新的编程语言,而是一种使用现有标准的新方法。 AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。 AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。 今天聊一下ajax发送get/post请求的问题 GET/POST AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。传统网页不使用 AJAX如果需要更新内容,必需重载整个网页面。有很多使用 AJAX 的应用程序案例:新浪微博、Google 地图等等。 使用前引入js <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> 示例代码 <script type="text/javascript"> $(function () { $("#btnget2").click(function () { $.ajax({ type: "GET", //type:(string)请求方式,POST或GET cache: false, async: true, //是否异步 dataType: "jsonp", /

Java内部类总结

时光怂恿深爱的人放手 提交于 2020-01-30 14:45:29
成员内部类 内部类可以访问外部类的所有成员。 通过 外部类.this.* 访问外部类同名成员。 通过 外部类.内部类 name=new 外部类().内部类() 实例化对象。 内部类中不能有任何static成员。 public class InnerClass1 { public int a; protected double b; char c; private String d; InnerClass1(int a){ this.a=a; } class inner{ int a; inner(int a){ this.a=a; } private void A(){ System.out.println(a); System.out.println(this.a); System.out.println(InnerClass1.this.a); } public void B(){ System.out.println(b); } } public static void main(String[] args) { InnerClass1.inner inner=new InnerClass1(10).new inner(5); inner.A(); inner.B(); } } 局部内部类 定义在方法里,不能有修饰符,只能在方法里使用。 只能使用外部类的final成员。