JavaScript Promise迷你书(中文版)迷你书(中文版) 7 Promise简介 在 ES6 Promises 标准中定义的API还不是很多。 目前大致有下面三种类型。 Constructor Promise类似于 XMLHttpRequest ,从构造函数 Promise 来创建一个新建新 promise 对 象作为接口。 要想创建一个promise对象、可以使用 new 来调用 Promise 的构造器来进行实例化。 resolve(处理结果值) • 处理结果错误的话,调用 reject(Error对象) 按这个流程我们来实际编写下promise代码吧。 我们的任务是用Promise来通过异步处理方式来获取XMLHttpRequest(XHR)的数据。 创建XHR的promise对象 首先,创建一个用Promise把XHR处理包装起来的名为 getURL 的函数。 xhr-promise.js 15 https://speakerdeck function getURL(URL) { return new Promise(function (resolve, reject) { var req = new XMLHttpRequest(); req.open('GET', URL, true); req.onload = function () { if (req0 码力 | 112 页 | 1010.02 KB | 1 年前3
JavaScript Promiseの本 v1Overview ES6 Promisesの仕様で定義されているAPIはそこまで多くはありません。 大きく分けて以下の3種類になります。 Constructor Promiseは XMLHttpRequest のように、コンストラクタ関数である Promise からインスタ ンスとなる promiseオブジェクトを作成して利用します。 promiseオブジェクトを作成するには、 Promise resolve(結果の値) を呼ぶ • 処理結果がエラーなら、 reject(Errorオブジェクト) を呼ぶ この流れに沿っているものを実際に書いてみましょう。 非同期処理であるXMLHttpRequest(XHR)を使いデータを取得するものをPromiseで書 いていきます。 XHRのpromiseオブジェクトを作る まずは、XHRをPromiseを使って包んだような getURL function getURL(URL) { return new Promise(function (resolve, reject) { var req = new XMLHttpRequest(); req.open('GET', URL, true); req.onload = function () { if (req0 码力 | 115 页 | 1.06 MB | 1 年前3
JavaScript Promiseの本 v2Overview ES Promisesの仕様で定義されているAPIはそこまで多くはありません。 大きく分けて以下の3種類になります。 Constructor Promiseは XMLHttpRequest のように、コンストラクタ関数である Promise からインスタ ンスとなる promiseオブジェクトを作成して利用します。 promiseオブジェクトを作成するには、 Promise resolve(結果の値) を呼ぶ • 処理結果がエラーなら、 reject(Errorオブジェクト) を呼ぶ この流れに沿っているものを実際に書いてみましょう。 非同期処理であるXMLHttpRequest(XHR)を使いデータを取得するものをPromiseで書 いていきます。 XHRのpromiseオブジェクトを作る まずは、XHRをPromiseを使って包んだような fetchURL function fetchURL(URL) { return new Promise((resolve, reject) => { const req = new XMLHttpRequest(); req.open("GET", URL, true); req.onload = () => { if (200 <= req0 码力 | 137 页 | 1.17 MB | 1 年前3
阮一峰 《ECMAScript 6入门》 第三版function(url) { var promise = new Promise(function(resolve, reject){ var client = new XMLHttpRequest(); client.open("GET", url); client.onreadystatechange = handler; client.responseType log('Contents: ' + json); }, function(error) { console.error('出错了', error); }); 上面代码中, getJSON 是对 XMLHttpRequest 对象的封装,用于发出一个针对 JSON 数据的 HTTP 请求,并且返回一个 Promise 对象。需要注意的是, 在 getJSON 内部, resolve 函数和 reject 64位浮点数 double 注意,二进制数组并不是真正的数组,而是类似数组的对象。 很多浏览器操作的API,用到了二进制数组操作二进制数据,下面是其中的几个。 File API XMLHttpRequest Fetch API Canvas WebSockets ArrayBuffer 对象 概述 ArrayBuffer 对象代表储存二进制数据的一段内存,它不能直接读写,只能通过0 码力 | 679 页 | 2.66 MB | 1 年前3
廖雪峰JavaScript教程3. // ajax函数将返回Promise对象: 4. function ajax(method, url, data) { 5. var request = new XMLHttpRequest(); 6. return new Promise(function (resolve, reject) { 7. request.onreadystatechange0 码力 | 264 页 | 2.81 MB | 10 月前3
TypeScript Handbook(中文版)
TypeScript Handbook(中文版) 553 TypeScript 1.5 移除扩展类型 Dataview , Weakmap , Map , Set XMLHttpRequest.send 具有两个重载 send(data?: Document): void; 和 send(data?: String): void; window.orientation0 码力 | 557 页 | 7.48 MB | 1 年前3
阮一峰 JavaScript 教程档对象模型)正式应用。 1998年,Netscape 公司开源了浏览器,这导致了 Mozilla 项目的 诞生。几个月后,美国在线(AOL)宣布并购 Netscape。 1999年,IE 5部署了 XMLHttpRequest 接口,允许 JavaScript 周边大事记 历史 - 24 - 本文档使用 书栈(BookStack.CN) 构建 发出 HTTP 请求,为后来大行其道的 Ajax 应用创造了条件。0 码力 | 540 页 | 3.32 MB | 10 月前3
TypeScript 4.0 使用手册
CanvasRenderingContext2D | WebGLRenderingContex 移除扩展类型 Dataview , Weakmap , Map , Set XMLHttpRequest.send 具有两个重载 send(data?: Document): void; 和 send(data?: String): void; window.orientation0 码力 | 683 页 | 6.27 MB | 1 年前3
共 8 条
- 1













