封装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,然后把他们打印出来,那么用回调可以编写代码如下 ...
随机推荐
- ubuntu 17.04 Tomcat安装
安装Tomcat分为两步: JDK和Tomcat 安装jdk 1.在oralce官网下载jdk
- Div 居中对齐(水平、垂直)
一:水平居中对齐 *********************************************************************************** 示例图 代码 ...
- LD_LIBRARY_PATH无效
在os x 上设置LD_LIBRARY_PATH无效,env命令看不到这个变量,下面的文章说明了这个问题 说明:网上基本针对这个值的设置分为两面,Windows派和Linux派,Windows的不说, ...
- Node.js使用ftp连接远程ftp服务器枚举和下载文件示例
示例代码: var Ftp = require('ftp'); var fs = require('fs'); var path = require('path'); // 首先判断参数中是否包含{d ...
- Node.js ORM框架Sequelize使用示例
示例代码: const Sequelize = require('sequelize'); const sequelize = new Sequelize('database', 'username' ...
- MySQL5.1中文文档学习笔记——第1章:一般信息(一)
原文地址 MySQL软件是一种开放源码软件. 开放源码"意味着任何人都能使用和改变软件.任何人都能从Internet下载MySQL软件,而无需支付任何费用.如果愿意,你可以研究源码并进行恰当 ...
- query解决touchmove时屏蔽touchend
var dragging = false; $("li").on("touchmove",function(){ dragging = true; }); $( ...
- Mysql开启审计功能
第一种经验证,有效. 第一种用macfee的mysql审计插件. 下载地址:https://bintray.com/mcafee/mysql-audit-plugin/release/1.1.4-72 ...
- 手动mvn install指令向maven本地仓库安装jar包
mvn install:install-file -DgroupId=imsdriver(jar包的groupId) -DartifactId=imsdriver(jar包的artifactId) - ...
- 【c# 学习笔记】面向对象编程的应用
在平时的开发过程中,面向对象编程的应用肯定必不可少.但前面的内容只是单独介绍了类.面向对象思想和接口,那么我们怎么在平时工作中来应用他们来实现面向对象编程呢? 如果你想设计一个Dog类,有了类的概念后 ...