关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL)) 欢迎fork本项目原始链接:关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph L)https://aistudio.baidu.com/aistudio/projectdetail/4982973?contributionType=1 因为篇幅关系就只放了部分程序在第三章,如有需求可自行fork项目原始链接. 0.1图计算基本概念 首先看到百度百科定义: 图…
Promise原理 参考https://github.com/chunpu/promise/blob/master/promise.js 个人认为原博的实现有点问题 在next函数的实现上, 会导致无限的调用 看看一般Promise的用法 promise = new Promise(function(resolve, reject) { //... resolve(1); //... }) .then(function(val){}, functioin(err){}) .then(functi…
  简介 Promise 对象用于延迟(deferred) 计算和异步(asynchronous )计算.一个Promise对象代表着一个还未完成,但预期将来会完成的操作.Promise 对象是一个返回值的代理,这个返回值在promise对象创建时未必已知.它允许你为异步操作的成功或失败指定处理方法. 这使得异步方法可以像同步方法那样返回值:异步方法会返回一个包含了原返回值的 promise 对象来替代原返回值. 解决了什么问题及怎么使用 // 一个简单的示例 执行一个动画A,执行完之后再去执行…
异步:可同时好几件事,互不影响: 同步:按循序一件一件.... 异步好多缺点:.... promise就是解决异步计算的这些缺点的,主要用于: 1.异步计算: 2.可以将异步操作队列化  按期望的顺序执行,返回符合预期的结果: 3.可以在对象之间传递和操作promise,帮助我们处理对列. 面向对象编程:程序设计的范式,把程序看做不同对象的相互调用,对现实世界建立对象模型. 类:人 实例:小明,小红 高阶函数:能接受函数作为参数的函数: 函数式编程:运行变量,函数作为变量,有闭包,支持匿名: F…
作者声明 本人将迁移至个人公众号「前端Q」及「掘金」平台写文章.博客园的文章将不再及时更新发布.欢迎大家关注公众号「前端Q」及我的掘金主页:https://juejin.im/user/5874526761ff4b006d4fd9a4/posts Promise 必须为以下三种状态之一:等待态(Pending).执行态(Fulfilled)和拒绝态(Rejected).一旦Promise 被 resolve 或 reject,不能再迁移至其他任何状态(即状态 immutable). 基本过程:…
  实现promise首先需要了解如下知识点: 1: 高阶函数 (一个函数作为另外一个函数的参数,这个包含的函数就是高阶函数): outer是一个高阶函数,inner函数作为一个参数传递:此处也是闭包的应用:foo() bar()的执行可以称为切片编程:AOP, 在逻辑执行前加入了某些执行逻辑,切片编程 function outer(inner){ bar() return (...args) => { foo() // ... inner() this(...args) } } functio…
promise特点 一个promise的当前状态只能是pending.fulfilled和rejected三种之一.状态改变只能是pending到fulfilled或者pending到rejected.状态改变不可逆. 支持链式调用. (1) 原型方法 Promise.prototype.then = function() {} Promise.prototype.catch = function() {} (2) 静态方法 Promise.resolve = function() {} Pro…
前言 前一阵子记录了promise的一些常规用法,这篇文章再深入一个层次,来分析分析promise的这种规则机制是如何实现的.ps:本文适合已经对promise的用法有所了解的人阅读,如果对其用法还不是太了解,可以移步我的上一篇博文. 本文的promise源码是按照Promise/A+规范来编写的(不想看英文版的移步Promise/A+规范中文翻译) 引子 为了让大家更容易理解,我们从一个场景开始讲解,让大家一步一步跟着思路思考,相信你一定会更容易看懂. 考虑下面一种获取用户id的请求处理 1…
传统的异步回调编程最大的缺陷是:回调地狱,由于业务逻辑非常复杂,代码串行请求好几层:并行请求以前也要通过引用step.async库实现.现在ES6推出了Promise,通过Promise的链式调用可以解决回调地狱问题,通过Promise.all方法可以解决并行请求的问题.现在我们通过手写Promise来彻底理解Promise的原理.  一.构造简单Promise函数,实现Promise的then方法 先来看一下简单的使用方法: var promise=new Promise(function(r…
我在这里介绍了promise的原理: https://juejin.im/post/5cc54877f265da03b8585902 我在这里 仅仅张贴 我自己实现的简易promise——DiPromise(自己起的名字,嘿嘿嘿~~) PS: 这个可以在控制台执行 let count = 0 class DiPromise { constructor(executor) { // 自己维护的状态 this.state = 'PENDING' // FULFILLED or REJECTED 后的…
首先先看一下 promise 的调用方式: // 实例化 Promise: new MyPromise((resolve, reject) => { setTimeout(() => { resolve(1) //这里相当于给value赋值 }, 0) }).then(value => { console.log(value) }) 实现原理如下: const PENDING = 'pending' //首先我们创建了三个常量用于表示状态,对于经常使用的一些值都应该通过常量来管理,便于开…
什么是Promise?本代码用定外卖来举例子,让你明白. // 定外卖就是一个Promise,Promist的意思就是承诺// 我们定完外卖,饭不会立即到我们手中// 这时候我们和商家就要达成一个承诺// 在未来,不管饭是做好了还是烧糊了,都会给我们一个答复 function orderFood(){ // Promise 接受两个参数 // resolve: 异步事件成功时调用(菜烧好了) // reject: 异步事件失败时调用(菜烧糊了) return new Promise((resol…
本文是作者原创,版权归作者所有.若要转载,请注明出处. 最近在看spring源码,但是spring的体系太庞大了,在这里记录一下阅读源码中遇到知识点 @PostConstruct 被注解的方法,在对象加载完依赖注入后执行 看个demo package com.day01.config; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation…
可移步 http://donglegend.com/2016/09/11/promise%E5%8E%9F%E7%90%86%E6%8E%A2%E7%A9%B6/ 观看 Promise是个什么玩意,大家都知道,度娘告诉我,以同步方式书写异步,解决回调地狱... 状态机 早闻Promise的大名,简单介绍,根据状态改变来执行相应处理函数.Promise的状态极其简单,只有 “pending”, “resolved”, “rejected”三种状态然后就是如何实现的问题,最关键的当然是监听到状态的更…
写在前面 这个文章,展现的是一个实现Promise的思路,以及如何发现和处理问题的情境. 从现有的Promise分析 如果我们想要自己实现一个简单的Promise,那现有规范规定的Promise肯定是我们最好的参照. 我们先看下Promise怎么使用: var promise1 = new Promise(function(resolve, reject){ // 成功后的TODO resolve(value); // 失败后的TODO reject(err); }) 来看下返回的promise…
1.什么是Promise? Promise是JS异步编程中的重要概念,异步抽象处理对象,是目前比较流行Javascript异步编程解决方案之一 2.对于几种常见异步编程方案 回调函数 事件监听 发布/订阅 Promise对象 这里就拿回调函数说说 (1) 对于回调函数 我们用Jquery的ajax获取数据时 都是以回调函数方式获取的数据 $.get(url, (data) => { console.log(data) ) (2) 如果说 当我们需要发送多个异步请求 并且每个请求之间需要相互依赖…
参考文章:深入理解 Promise.[翻译]Promises/A+规范 从入门Promise的正确姿势中我们已经了解到Promise的基本用法.那么现在给你一个需求:根据Promise的用法和Promise/A+规范,实现一个自己的Promise函数. 1.Promise构造函数的结构 根据Promise的用法我们知道:在new一个Promise函数的时候,Promise函数必须接受一个函数作为参数.我们暂且把这个参数函数称为执行器. 执行器提供两个参数(resolve,reject),且内部有…
promise是用来解决Js中的异步问题的,js中所有的异步可从callback → promise → generator + co = async + await 其实所有的都是callback的变相处理,只是后者慢慢变的越来越优雅和强壮可扩展. 那么如何实现promise呢?先观察一下promise的样子 let a = new Promise((resolve,reject)=>{ // dosomething resolve() }) 无非是一个名称叫Promise的对象,然后传参一个…
Generator 熟悉ES6语法的同学们肯定对Generator(生成器)函数不陌生,这是一个化异步为同步的利器. 栗子: function* abc() { let count = 0; while(true) { let msg = yield ++count; console.log(msg); } } let iter = abc(); console.log(iter.next().value); // 1 console.log(iter.next('abc').value); /…
1.简单的promise: //极简promise雏形 function Promise(fn){ var value = null; callbacks = [];//callback为数组,因为可以同时有很多个回调 this.then = function(onFulfilled){ callbacks.push(onFulfilled); } function resolve(value){ callbacks.forEach(function(callback){ callback(va…
Promise 的含义 所谓Promise ,简单说就是一个容器,里面保存着某个未来才回结束的事件(通常是一个异步操作)的结果.从语法上说,Promise是一个对象,从它可以获取异步操作的消息. resolve 其实就是 返回异步操作的数据 /* * resolve函数的作用是,将Promise对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),* 在异步操作成功时调用,并将异步操作的结果,作为参数传递出去: * reject函数的作用是,将Promise对象的状…
前言 作为ES6处理异步操作的新规范,Promise一经出现就广受欢迎.面试中也是如此,当然此时对前端的要求就不仅仅局限会用这个阶段了.下面就一起看下Promise相关的内容. Promise用法及实现 在开始之前,还是简单回顾下Promise是什么以及怎么用,直接上来谈实现有点空中花园的感觉.(下面示例参考自阮大佬es6 Promis,) 定义 Promise 是异步编程的一种解决方案,可以认为是一个对象,可以从中获取异步操作的信息.以替代传统的回调事件. 常见用法 Promise的创建 es…
在JavaScript中,所有代码都是单线程.由于该“缺陷”,JavaScript在处理网络操作.事件操作时都是需要进行异步执行的.AJAX就是一个典型的异步操作 对于异步操作,有传统的利用回调函数和使用 Promise,二者的对比如下: //以往回调方式 函数1(function(){ //代码执行...(ajax1) 函数2(function(){ //代码执行...(ajax2) 函数3(function(data3){ //代码执行...(ajax3) }); ... }); }); /…
我的promise能实现什么? 1:解决回调地狱,实现异步 2:可以链式调用,可以嵌套调用 3:有等待态到成功态的方法,有等待态到失败态的方法 4:可以衍生出周边的方法,如Promise.resolve(),Promise.reject(),Promise.prototype.then(),Promise.prototype.catch(),Promise.all() // 所有的完成 5. 可以根据自己的需求调节自己的promise let PromiseA = require('./Prom…
高可用 24小时对外提供服务 高并发 同一时间段能处理的请求数 1,中心化和去中心化 1.1,中心化 意思是所有的节点都要有一个主节点 缺点:中心挂了,服务就挂了 中心处理数据的能力有限,不能把节点性能发挥到最大 特点:就是一个路由作用 1.2,去中心化 特点:去掉路由,我自己来路由 以上通俗的就是 中心化:几个经过认证的嘉宾在'讲话',所有其他人在听. 去中心化:每个人都可以'讲话',每个人都可以选择听或者讲. 2,Redis集群的执行流程分析 2.1,哈希槽说明 Redis 集群中内置了 1…
简介 Promise 对象用于延迟(deferred) 计算和异步(asynchronous )计算.一个Promise对象代表着一个还未完成,但预期将来会完成的操作.Promise 对象是一个返回值的代理,这个返回值在promise对象创建时未必已知.它允许你为异步操作的成功或失败指定处理方法. 这使得异步方法可以像同步方法那样返回值:异步方法会返回一个包含了原返回值的 promise 对象来替代原返回值. 解决了什么问题及怎么使用 // 一个简单的示例 执行一个动画A,执行完之后再去执行另一…
知识点:Mysql 索引原理完全手册(1) 知识点:Mysql 索引原理完全手册(2) 知识点:Mysql 索引优化实战(3) 知识点:Mysql 数据库索引优化实战(4) 八. 联合索引与覆盖索引 一 .联合索引 联合索引时指对表上的多个列合起来做一个索引.联合索引的创建方法与单个索引的创建方法一样,不同之处在仅在于有多个索引列,如下 mysql> create table t( -> a int, -> b int, -> primary key(a), -> key i…
知识点:Mysql 索引原理完全手册(1) 知识点:Mysql 索引原理完全手册(2) 知识点:Mysql 索引优化实战(3) 知识点:Mysql 数据库索引优化实战(4) Mysql-索引原理完全手册 一. 介绍 二. 索引的原理 三. 索引的数据结构 四. 聚集索引与辅助索引 五. MySQL索引管理 六. 测试索引 七. 正确使用索引 八. 联合索引与覆盖索引 九. 查询优化神器-explain 十. 慢查询优化的基本步骤 十一. 慢日志管理 一 .介绍 为何要有索引? 复杂的查询操作是我…
1.什么是 Promise promise 是目前 JS 异步编程的主流解决方案,遵循 Promises/A+ 方案. 2.Promise 原理简析 (1)promise 本身相当于一个状态机,拥有三种状态 pending fulfilled rejected一个 promise 对象初始化时的状态是 pending,调用了 resolve 后会将 promise 的状态扭转为 fulfilled,调用 reject 后会将 promise 的状态扭转为 rejected,这两种扭转一旦发生便不…
全面理解Javascript中Promise 最近在学习Promise的时候,在网上收集了一些资料,发现很多的知识点不够系统,所以小编特意为大家整理了一些自认为 比较好的文章,供大家更好地学习js中非常有趣的Promise Promise概念 2015 年 6 月,ECMAScript 6 的正式版 终于发布了. ECMAScript 是 JavaScript 语言的国际标准,javascript 是 ECMAScript 的实现.ES6 的目标,是使得 JavaScript 语言可以用来编写大…