封装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 = "成功回调"
console.log(a)
},(err)=>{
var b = "失败回调"
console.log(b)
})
// ---------------------------------
function promiseTest(){
var promise= new Promise((resolve,reject)=>{
var flag=true;
if(flag) return resolve()
reject()
});
return promise
};
promiseTest().then((res)=>{
var a = "成功回调"
console.log(a)
},(err)=>{
var b ="失败回调"
console.log(b)
})
//---------------------------
// ## Promise
// 1.Promise是一个构造函数
// + 需要new Promise去创建一个Promise对象
// + 在new Promise(函数) 这个函数有2个参数一个是resolve(成功的回调)
// 一个是reject(失败的回调)
// 2.promise对象上有then()同时还有一个叫 catch方法
// + then接受2参数一个是成功的回调一个是失败的回调
// +在then接受中的分别传递成功和失败回调函数给resolve和reject
// 3.为什么要使用Promise
// +解决嵌套地狱问题
// 4.Promise会立即执行
封装promise的更多相关文章
- 如何封装Promise对象?
最近看到了一个有趣的Promise的方法,这里记录下来 <script> class MyPromise { constructor(executor) { // 初始化state赋值为p ...
- 如何手动封装Promise函数
第一步:Promise构造函数接受一个函数作为参数,该函数的两个参数分别是:resolve和reject; function Promise(task) { // 缓存this let that = ...
- 封装原生promise函数
阿里面试题: 手动封装promise函数 <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- Promise的封装
要封装Promise,首先要了解Promise的使用. Promise有以下几个特点:1.Promise是一个构造函数 2.实例化Promise时有两个回调函数,resolve,reject ,成功执 ...
- Promise简介
Promise是ES6中的函数,规范了如何处理异步任务的回调函数,功能类似于jQuery的defferred.简单说就是通过promise对象的不同状态调用不同的回调函数.目前IE8及以下不支持,其他 ...
- 读书笔记-你不知道的JS中-promise(2)
继续填坑 模式 考虑下面的代码: function fn(x) { //do something return new Promise(function(resolve, reject) { //调用 ...
- ES6(promise)_解决回调嵌套简单应用
一.前言 这个小案例是在node平台上应用的所以需要保证你的电脑: 1.安装和配置node.js环境 2.需要用node.js来开启一个http-server: 开启方法:https://blog.c ...
- nodejs -Promise
创建一个 readFile.js,读取三个文件abc的内容并输出到控制台 var fs = require('fs') fs.readFile('./a.txt','utf-8',function ( ...
- 异步三部曲之promise
概述 这是我看你不知道的JavaScript(中卷)的读书笔记,供以后开发时参考,相信对其他人也有用. 例子 首先来看一个例子,如果我们要异步获取x和y,然后把他们打印出来,那么用回调可以编写代码如下 ...
随机推荐
- Qt编写控件属性设计器8-网络采集
一.前言 上一篇文章已经打通了数据源之一的串口采集,这次要说的是网络采集,网络通信目前用的最多的是三种,TCP/UDP/HTTP,其中tcp通信又包括了客户端服务端两种,tcp通信才用了多次握手机制不 ...
- 二进制包安装Mysql
(1).准备工作 前往mysql官网下载二进制安装包,https://dev.mysql.com/downloads/mysql/5.7.html#downloads(注意:选择操作系统时选Linux ...
- Apache工作模式切换
一.apache运行模式切换 apache比较常用的工作模式有worker以及prefork两种方式 1.编译安装: 如果在编译时候不指定,系统默认的是prefork模式.如果需要换成worker模式 ...
- (十一)Centos之帮助命令
帮助命令man (manual) 比如我们可以看下man命令的解释 [root@localhost ~]# man man MAN(1) ...
- 安卓模拟器Android SDK 4.0.3 R2安装完整图文教程
在最新的Android 4.0.3 R2模拟器中,已经加入了GPU支持,可以支持OpenGL ES 2.0标准,让开发者可以借助模拟器来测试自己的OpenGL游戏.在去年新增了摄像头支持之后,现在的新 ...
- Python3之错误处理
在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及错误的原因.在操作系统提供的调用中,返回错误码非常常见.比如打开文件的函数open(),成功时返回文件描 ...
- TEC-2机微程序设计
了解TEC-2机的结构和基本的指令知识很重要,不理解而只知一味地照抄是学不到知识的.建议先阅读课件,再结合例子进行理解.以下例子只供参考,有些地方可以合并,具体的操作仍需见仁见智.理解并学会使用微指令 ...
- iOS-AVFoundation生成缩略图
使用MPMoviePlayerController来生成缩略图足够简单,但是如果仅仅是是为了生成缩略图而不进行视频播放的话,此刻使用 MPMoviePlayerController就有点大材小用了.其 ...
- 🔥Scratch少儿编程——飞机大战
前两天用
- utf8 unicode 编码互转
static function utf8_to_unicode($c) { switch(strlen($c)) { case 1: return ord($c); case 2: $n = (ord ...