返回值

数组的遍历你都会用了,那Promise版本的呢

匿名 (未验证) 提交于 2019-12-02 21:53:52
这里指的遍历方法包括: map 、 reduce 、 reduceRight 、 forEach 、 filter 、 some 、 every 因为最近要进行了一些数据汇总, node 版本已经是8.11.1了,所以直接写了个 async/await 的脚本。 但是在对数组进行一些遍历操作时,发现有些遍历方法对 Promise 的反馈并不是我们想要的结果。 当然,有些严格来讲并不能算是遍历,比如说 some , every 这些的。 但确实,这些都会根据我们数组的元素来进行多次的调用传入的回调。 这些方法都是比较常见的,但是当你的回调函数是一个 Promise 时,一切都变了。 async/await Ϊ Promise 的语法糖 文中会直接使用 async/await 替换 Promise 1 let result = await func() 2 // => 等价于 3 func().then(result => { 4 // code here 5 }) 6 7 // ====== 8 9 async function func () { 10 return 1 11 } 12 // => 等价与 13 function func () { 14 return new Promise(resolve => resolve(1)) 15 } map map 可以说是对

百度地图,点聚合展示速度优化

匿名 (未验证) 提交于 2019-12-02 21:53:52
大致问题,由于百度地图点聚合在超过1000个点的时候会出现稍许卡顿,而超过5000之后明显卡坤甚至浏览器崩溃的情况,所以需要修改百度地图外链引入的MarkerClusterer_min.js文件。 以下为修改后的文件内容 1 /** 2 * @fileoverview MarkerClusterer标记聚合器用来解决加载大量点要素到地图上产生覆盖现象的问题,并提高性能。 3 * 主入口类是<a href="symbols/BMapLib.MarkerClusterer.html">MarkerClusterer</a>, 4 * 基于Baidu Map API 1.2。 5 * 6 * @author Baidu Map Api Group 7 * @version 1.2 8 */ 9 10 11 /** 12 * @namespace BMap的所有library类均放在BMapLib命名空间下 13 */ 14 var BMapLib = window.BMapLib = BMapLib || {}; 15 (function(){ 16 17 /** 18 * 获取一个扩展的视图范围,把上下左右都扩大一样的像素值。 19 * @param {Map} map BMap.Map的实例化对象 20 * @param {BMap.Bounds} bounds BMap

java list集合排序按某一属性排序

匿名 (未验证) 提交于 2019-12-02 21:53:52
public List<FreightM> sortList (List<FreightM> list){ Collections.sort(list, new Comparator<FreightM>(){ @Override public int compare (FreightM o1, FreightM o2) { if (o1.getType()== 0 ){ return - 1 ; } else { return 1 ; } } }); return list; } 实现compareTo()方法, 返回值为-1,第一个参数排前面;返回值为1,则第二个参数排前面 文章来源: java list集合排序按某一属性排序

JAVA之创建线程与线程池

匿名 (未验证) 提交于 2019-12-02 21:53:52
JAVA创建线程的方式有三种,分别是: 继承Thread 实现Runnable 实现Callable 1、继承Thread 通过继承抽象类Thread,创建MyThreadExtends对象,调用其start方法。 package Thread; import java.util.concurrent.*; public class TestThread { public static void main(String[] args) throws Exception { testExtends(); } public static void testExtends() throws Exception { Thread t1 = new MyThreadExtends(); Thread t2 = new MyThreadExtends(); t1.start(); t2.start(); } } class MyThreadExtends extends Thread { @Override public void run() { System.out.println( "通过继承Thread,线程号:" + currentThread().getName()); } } 2、实现Runnable 通过实现接口Runnable,创建Runnable对象r

【java基础】第10天――继承、抽象类

匿名 (未验证) 提交于 2019-12-02 21:53:52
今日内容介绍 1、继承 2、抽象类 3、综合案例―员工类系列定义 *A:继承的概念 *a:继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系 *b:在Java中,类的继承是指在一个现有类的基础上去构建一个新的类, 构建出来的新类被称作子类,现有类被称作父类 *B:继承关系的子类特点 *a:子类会自动拥有父类所有非private修饰的属性和方法 *A:继承的格式 class 子类 extends 父类 {} *B:雇员(Employee)与研发部员工(Developer)案例: *cn.itcast.demo01包下: *Employee.java: /* * 定义员工类Employee */ class Employee { String name; // 定义name属性 public void work() {// 定义员工的工作方法 System.out.println("尽心尽力地工作"); } } *Developer.java: /* * 定义研发部员工类Developer 继承 员工类Employee * 继承了父类中所有非private修饰的成员变量 */ class Developer extends Employee { // 定义一个打印name的方法 public void printName() { System.out

Java中使用有返回值的线程

匿名 (未验证) 提交于 2019-12-02 21:53:32
在创建多线程程序的时候,我们常实现Runnable接口,Runnable没有返回值,要想获得返回值,Java5提供了一个新的接口Callable,可以获取线程中的返回值,但是获取线程的返回值的时候,需要注意,我们的方法是异步的,获取返回值的时候,线程任务不一定有返回值,所以,需要判断线程是否结束,才能够去取值。 package com.wuwii.test; import java.util.concurrent.*; /** * @author Zhang Kai * @version 1.0 * @since <pre>2017/10/31 11:17</pre> */ public class Test { private static final Integer SLEEP_MILLS = 3000; private static final Integer RUN_SLEEP_MILLS = 1000; private int afterSeconds = SLEEP_MILLS / RUN_SLEEP_MILLS; // 线程池(根据机器的核心数) private final ExecutorService fixedThreadPool = Executors.newFixedThreadPool(Runtime.getRuntime()

JAVA 基础篇

匿名 (未验证) 提交于 2019-12-02 21:52:03
一、数组 1、 什么是数组? 数组和变量差不多,也是可以存放数据的,但是数组可以存放多个数据,而且多个数据的数据类型统一 格式 数据类型 [] 数组名称; 还有一种等效的写法,不推荐 数据类型 数组名称[]; 变量如果定义好了之后,要想使用,一定要赋值 数组如果定义好了之后,要想使用一定要初始化 初始化:就是在内存当中开辟数组的空间,并且赋值一些默认值(准备工作) 数组的初始化方式有两种: 1、动态初始化,指定数组的长度 2、静态初始化,指定数组的内容 动态初始化:直接指定数组的长度,也就是数组当中到底可以存放多少个数据 格式一、 数据类型[] 数组名称=new 数据类型[数组长度]; 解析: 左侧数据类型:也就是数组当中存放的元素全部都是统一的什么类型 左侧的[]:代表这个一种数组类型 数组名称:就是一个自定义的标识符,通过名称,可以使用数组当中的数据 右侧的new:代表创建动作,内存当中开辟空间,创建数组 右侧数据类型:一定要和左侧的数据类型一样 右侧[]当中的数组长度:也就是到底能存放多少个数据 格式二、 数据类型[] 数组名称; 数组名称=new 数据类型[数组长度]; 1 public static void main ( String [] args ) { 2 //格式一 3 int [] array1 = new int [ 2 ]; 4 //格式二 5 int [

Java基础学习day05

匿名 (未验证) 提交于 2019-12-02 21:52:03
01 - 方法的基本概述 什么是方法? 方法是将具有独立功能的代码组成一个整体,使其成为具有特殊功能的代码块. 方法的两个注意: 方法必须先定义才能使用。(方法定义) 方法定义后不会自动运行,需要手动调用才能执行方法的功能。(方法调用) 小结: 方法(函数)的作用 : 将一个具备固定功能的代码封装起来,提高功能代码复用性 /* 目前存在的问题: 1. 没有符合我的需求。 2. 冗余代码多,代码没有任何的复用性。 体验:自定义方法。 方法(函数)的作用 : 将一个具备固定功能的代码封装起来,让功能代码可以被复用。 */ public class Demo1 { public static void main(String[] args) { /* //需求:计算两个数据的总和 int a = 3; int b =5; int sum = a+b; System.out.println("总和:"+sum); a = 6; b =7; sum = a+b; System.out.println("总和:"+sum); a = 7; b =8; sum = a+b; System.out.println("总和:"+sum);*/ //调用方法 sum(1,1); sum(6,7); } // 方法:将加法求和的功能封装到一个方法中。 public static void sum(int

好程序员分享java8新特性之Lambda表达式

匿名 (未验证) 提交于 2019-12-02 21:52:03
好程序员分享java8新特性之Lambda表达式 什么是Lambda? interface Comparator<T> { int compare(T o1, T o2); } class Program { public static void main(String[] args) { class Impl implements Comparator<Integer> { @Override public int compare(Integer o1, Integer o2) { return o1 - o2; } } Comparator<Integer> c1 = new Impl(); Comparator<Integer> c2 = new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o1 - o2; } }; Comparator<Integer> c3 = (o1, o2) -> o1 - o2; } } @FunctionalInterface** @FunctionalInterface 参数: 以()包围起来,多个参数以逗号分隔 (int a, int b) { System.out.println("hello world"); }

# java中多返回值的优雅解决方案

匿名 (未验证) 提交于 2019-12-02 21:52:03
@Test public void test1(){ int a = 10,b =7; int[] compute = compute(a,b); System.out.println("两数之和:"+compute[0]); System.out.println("两数之差:"+compute[1]); } private int[] compute(int a,int b){ return new int[]{a+b,a-b}; } 显然这有致命的缺点,你无法通过下标直观的对应[0]是什么含义,[1]是什么含义,特别是别人阅读你的代码可能会有些许的压力。可维护性非常差。 同样一种比较常用的方式,参考代码如下 @Test public void test2(){ int a = 10, b = 7; IntBox aBox = new IntBox(a); IntBox bBox = new IntBox(b); compute2(aBox,bBox); System.out.println("两数之和:" + aBox); System.out.println("两数之差:" + bBox); } private void compute2(IntBox a,IntBox b){ int diff = a.value - b.value; int sum = a.value +