封装promise】的更多相关文章

// new 做了什么 //1.创建一个新的空对象 //2.将构造函数中的this指向这个新空对象 //3.执行构造函数中的代码 //4.返回这个对象 //5.这个对象有一个__proto__指向构造函数原型 var promise= new Promise((resolve, reject) => { var flag=1; if(flag) return resolve() reject() }); promise.then((res)=>{ var a = "成功回调"…
最近看到了一个有趣的Promise的方法,这里记录下来 <script> class MyPromise { constructor(executor) { // 初始化state赋值为pending this.state = "pending"; // 定义成功的 值 this.value = undefined; //定义失败的 原因 this.reason = undefined; //定义成功存起来的数组 this.onResolvedCallbacks = [];…
第一步:Promise构造函数接受一个函数作为参数,该函数的两个参数分别是:resolve和reject; function Promise(task) { // 缓存this let that = this // 进行中的状态 this.status = 'pending' //初始值 this.value = undefined // 存放成功后要执行的回调函数的序列 that.onResolvedCallbacks = [] // 存放失败后要执行的回调函数的序列 that.onRejec…
阿里面试题: 手动封装promise函数 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> /* *Promise实现思路 * 1.构造函数 * 2.回调函数的参数 resolve reject…
要封装Promise,首先要了解Promise的使用. Promise有以下几个特点:1.Promise是一个构造函数 2.实例化Promise时有两个回调函数,resolve,reject ,成功执行resolve,失败执行reject 3.在实例化p的then中有两个对应的回调函数,第一个回调是resolve执行时触发,第二个回调是reject执行时触发4.语法糖catch,就是执行reject的时候,不调用第二个参数,直接链式写catch,像用then一样[ 有坑,异步调用resolve,…
Promise是ES6中的函数,规范了如何处理异步任务的回调函数,功能类似于jQuery的defferred.简单说就是通过promise对象的不同状态调用不同的回调函数.目前IE8及以下不支持,其他浏览器都支持. promise对象的状态,从Pending转换为Resolved或Rejected之后,这个promise对象的状态就不会再发生任何变化. 使用步骤: var promise = new Promise(function(resolve, reject) { // 异步任务,通过调用…
继续填坑 模式 考虑下面的代码: function fn(x) { //do something return new Promise(function(resolve, reject) { //调用resolve(..)和reject(...) }); } var p = fn(2); new Promise(..)模式通常称为revealing constructor.传入函数会立即执行(不会像then(..)中的回调一样异步延迟),它有两个参数,分别为resolve和reject.这些是p…
一.前言 这个小案例是在node平台上应用的所以需要保证你的电脑: 1.安装和配置node.js环境 2.需要用node.js来开启一个http-server: 开启方法:https://blog.csdn.net/kaixinhlz/article/details/67046964 3.需要模拟数据接口   模拟方法:https://www.cnblogs.com/blackgan/p/7435228.html 二.主要内容 1.项目说明:      (1)项目结构         (2)代码…
创建一个 readFile.js,读取三个文件abc的内容并输出到控制台 var fs = require('fs') fs.readFile('./a.txt','utf-8',function (err,data) { if(err) throw err //js语法,抛出异常,阻止程序执行,把错误打印到控制台 console.log(data) //将a.txt内容输出到控制台 }) fs.readFile('./b.txt','utf-8',function (err,data) { i…
概述 这是我看你不知道的JavaScript(中卷)的读书笔记,供以后开发时参考,相信对其他人也有用. 例子 首先来看一个例子,如果我们要异步获取x和y,然后把他们打印出来,那么用回调可以编写代码如下: ajax(urlX, function(x) { ajax(urlY, function(y){ console.log(x + y); }) }) 不得不说,上面的代码是很丑陋的,x和y的获取本来是互不影响的,但是现在y的获取需要依赖于x的完成,这导致了执行速度很慢. 所以我们把获取x和y的回…