JavaScript Promise迷你书(中文版)1 JavaScript Promise迷你书(中文版) 原著:azu / 翻译:liubin、kaku、honnkyou Revision History Revision 1.4.1 原/翻 Table of Contents 前言 ........................................................................... .................... 5 Chapter.1 - 什么是Promise ...................................................................................................... 5 什么是Promise ...................................... ........................... 5 Promise简介 ...................................................................................................................... 7 编写Promise代码 ...........................0 码力 | 112 页 | 1010.02 KB | 1 年前3
阮一峰 《ECMAScript 6入门》 第三版命令 变量的解构赋值 字符串的扩展 正则的扩展 数值的扩展 函数的扩展 数组的扩展 对象的扩展 Symbol Set 和 Map 数据结构 Proxy Reflect Promise 对象 Iterator 和 for...of 循环 Generator 函数的语法 Generator 函数的异步应用 async 函数 Class 的基本语法 Class 的继承 句法(syntax),而不转换新的 API,比 如 Iterator 、 Generator 、 Set 、 Maps 、 Proxy 、 Reflect 、 Symbol 、 Promise 等全局对象,以及一些定义在全局对象上的方法(比 如 Object.assign )都不会转码。 举例来说,ES6 在 Array 对象上新增了 Array.from 方法。Babel prototype[Symbol.toStringTag] :'DataView' Map.prototype[Symbol.toStringTag] :'Map' Promise.prototype[Symbol.toStringTag] :'Promise' Set.prototype[Symbol.toStringTag] :'Set' %TypedArray%.prototype[Symbol.toStringTag]0 码力 | 679 页 | 2.66 MB | 1 年前3
ThinkJS 2.0 中文文档ThinkJS ������ ThinkJS ���������� ����������������� ������������� �� ES6/7 ������������ JavaScript Promise��� learn-es2015 ������� ��������� �������� � express/koa �� � sails �� ThinkJS ��� ES6/7 from './base.js'; export default class extends Base { /** * index action * @return {Promise} [] */ indexAction(){ //auto render template file index_index.html return this.display(); ERROR'); } } } JavaScript �� async/await ���� Promise ����� rejected Promise������������������ ����������� catch ������ resolve Promise ������ �����������success������� message � PREVENT_NEXT_PROCESS0 码力 | 238 页 | 1.87 MB | 1 年前3
ThinkJS 2.2 中文文档机测试,如果使用 ab 测试工具,请注意该工具在 Mac 系统下很不稳定,多次测试结果会相差很 大。 ES6/7 参考文档 关于 ES6/7 特性可以参考下面的文档: JavaScript Promise迷你书 learn-es2015 ECMAScript 6 入门 给 JavaScript 初心者的 ES2015 实战 ECMAScript 6 Features ECMAScript Base from './base.js'; export default class extends Base { /** * index action * @return {Promise} [] */ indexAction(){ //auto render template file index_index.html return this.display(); 误,这样就可 以针对不同的错误返回不同的错误信息。 如何忽略异常 使用 async/await 时,如果 Promise 返回了一个 rejected Promise,那么会抛出异常。如果这个异 常不重要需要忽略的话,可以通过 catch 方法返回一个 resolve Promise 来完成。如: export default class extends think.controller.base0 码力 | 277 页 | 3.61 MB | 1 年前3
ThinkJS 1.2 中文文档ThinkJS 是⼀一款⾼高效、简单易⽤用的 Node.js MVC 框架。基于 ES6 Promise 开发,让异步编程更加简单、⽅方便。 ⾃自动启动服务 ⽀支持 Http、命令⾏行、WebSocket、Restful等多种⽅方式调⽤用 CBD 架构,MVC 模式 基于 Promise,异步编程更加简单 封装了 Db, Cache, Session 等常⽤用功能 开发模式下⽂文件修改后⽴立即⽣生效,⽆无需重启 测也是个⾏行为。 标签 (tag) 是⼀一组⾏行为的集合,是在系统执⾏行过程中切⾯面处调⽤用的。与 EventEmitter 不同,标签⾥里的⾏行为是按 顺序执⾏行的,当前的⾏行为通过 Promise 机制控制后⾯面的⾏行为是否被执⾏行。 当执⾏行⼀一个 http 请求时,会在对应的时机执⾏行如下的标签位: app_init 应⽤用初始化 path_info 解析 path 路径 这⾥里说个技巧:⼀一般系统后台都需要⽤用户登录才能访问,但判断⽤用户是否登录⼀一般都是异步的,不可能在每个 Action ⾥里都去判断是否已经登录。 这时候就可以在 init ⽅方法⾥里判断是否已经登录,并且把这个 promise 返回,后续的 action 执⾏行则是在这个 then 之 后执⾏行。如: ThinkJS ⽀支持前置和后置操作,默认的⽅方法名为 __before 和 __after ,可以通过如下的配置修改:0 码力 | 104 页 | 1.29 MB | 1 年前3
在 JavaScript 中的并行语言特性-周爱民State Result Reactions1 Reactions2 Resolve 实例例 置值器器 Reject Resolving Functions Promise Instance { Promise.resolve('Hello World') .then(console.log); aPromise.then(func) aPromise.then(func) aPromise.then(func2, func3) Promise.resolve(x) var p = new PromiseInstnace(); var [resolve, reject] = ... of p; resolve(x); // p[[result]] = x; return p; ≈ p2 = Promise.resolve(p) ≈ var p2 = new PromiseInstnace(); Reactions2 p = Promise.resolve(x) p2 = p.then(f) JS 类 对象 构造器 ⾯面向对象的 动态的 名字空间 结构化异常 语句 结构化的 动态类型 动态执行 动态作用域 多语言范型 函数式的 生成器 迭代器 函数是第一类的 可运行/求值的 for await..of .catch .finally promise.then() Promise()0 码力 | 41 页 | 8.61 MB | 1 年前3
ThinkJS 3.0 中文文档获取控制器的实例,不存在则报错。 think.beforeStartServer(fn) fn {Function} 要注册的函数名 服务启动之前要注册执行的函数,如果有异步操作,fn 需要返回 Promise。 启动自定义 当通过 npm start 或者 node production.js 来启动项目时,虽然可以在这些入口文件里添加其 他的逻辑代码,但并不推荐这么做。系统给出了其他启动自定义的入口。 getDataFromApi(); think.config(key, data); }) 可以通过 think.beforeStartServer 注册多个需要执行的逻辑,如果逻辑函数中有异步的操作, 需要返回 Promise。 系统会等待注册的多个逻辑执行完成后才启动服务,当然也不会无限制的等待,会有个超时时 间。超时时间可以通过配置 startServerTimeout 修改,默认为 3 秒。 //src/config/config afterFind(data) data {Object} 查询的单条数据 return {Object | Promise} find 查询后置操作。 model.afterSelect(data) data [Array] 查询的数据数据 return {Array | Promise} select 查询后置操作。 model.data(data) data {Object}0 码力 | 129 页 | 2.12 MB | 1 年前3
廖雪峰JavaScript教程更新DOM 6.2.2 插入DOM - 2 - 本文档使用 书栈(BookStack.CN) 构建 6.2.3 删除DOM 6.3 操作表单 6.4 操作文件 6.5 AJAX 6.6 Promise 6.7 Canvas 7 jQuery 7.1 选择器 7.1.1 层级选择器 7.1.2 查找和过滤 7.2 操作DOM 7.2.1 修改DOM结构 7.3 事件 7.4 动画 操作文件 - 153 - 本文档使用 书栈(BookStack.CN) 构建 6.5 AJAX 6.5 AJAX - 154 - 本文档使用 书栈(BookStack.CN) 构建 6.6 Promise 在JavaScript的世界中,所有代码都是单线程执行的。 由于这个“缺陷”,导致JavaScript的所有网络操作,浏览器事件,都必须是异步执行。异步执行可以 用回调函数实现: 1. success(request.responseText) 和 fail(request.status) 写到一个AJAX操作里 很正常,但是不好看,而且不利于代码复用。 Promise 6.6 Promise - 155 - 本文档使用 书栈(BookStack.CN) 构建 有没有更好的写法?比如写成这样: 1. var ajax = ajaxGet('http://...');0 码力 | 264 页 | 2.81 MB | 10 月前3
阮一峰 JavaScript 教程RegExp 对象 JSON 对象 面向对象编程 实例对象与 new 命令 this 关键字 对象的继承 Object 对象的相关方法 严格模式 异步操作 概述 定时器 Promise 对象 DOM 概述 - 2 - 本文档使用 书栈(BookStack.CN) 构建 致谢 当前文档 《阮一峰 JavaScript 教程》 由 进击的皇虫 使用 书栈(BookStack Town JavaScript Strict Mode Support 参考链接 严格模式 - 500 - 本文档使用 书栈(BookStack.CN) 构建 异步操作 概述 定时器 Promise 对象 异步操作 异步操作 - 501 - 本文档使用 书栈(BookStack.CN) 构建 概述 异步操作概述 单线程模型 同步任务和异步任务 任务队列和事件循环 异步操作的模式 - 525 - 本文档使用 书栈(BookStack.CN) 构建 Promise 对象 Promise 对象 概述 Promise 对象的状态 Promise 构造函数 Promise.prototype.then() then() 用法辨析 实例:图片加载 小结 微任务 参考链接 Promise 对象是 JavaScript 的异步操作解决方案,为异步操作提 供统一0 码力 | 540 页 | 3.32 MB | 10 月前3
TypeScript 4.0 使用手册
构建 现在安装好了Angular 2及其依赖项,我们需要启用TypeScript中实验性的装饰器支持。 我们还需 要添加ES2015的声明,因为Angular使用core-js来支持像 Promise 的功能。 在未来,装饰器会 成为默认设置,那时也就不再需要这些设置了。 添加 "experimentalDecorators": true, "emitDecoratorMetadata": Quick Install Package。 3. 用 PackageInstaller 安装 es6-shim 的类型文件。 Angular 2 包含 es6-shim 以提供 Promise 支持, 但 TypeScript 还需要它的类型文 件。 在 PackageInstaller 中, 选择 Typing 替换 npm 选项。接着键入 “es6- shim”: 现在安装好了 extends (infer U)[] ? U : 3. T extends (...args: any[]) => infer U ? U : 4. T extends Promise? U : 5. T; 6. 7. type T0 = Unpacked ; // string 8. type T1 = Unpacked ; 0 码力 | 683 页 | 6.27 MB | 1 年前3
共 109 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11













