promise的简单使用
var p = new Promise(function (resolve,reject) {
/*setTimeout(function () {
resolve('success')
},3000);
setTimeout(function () {
reject('fail')
},2000);*/
// resolve(123);
// reject(123);
ajax({
type:'get',
url:'./2.json',
success:resolve,// success && success(data)
success:function(data){
// data[19] = 1233;
resolve(data);
},
error:reject
})
});
var p2 = p.then((data)=>{
console.log(data);
throw new Error('失败了');
console.log(2);
// console.log(this);
// return data;
},(res)=>{
console.log(res);
return 'success';
});
p2.then(function (data) {
console.log('p2suc',data);
if(Math.random() > 0.5){
throw new Error('大于0.5;是个失败')
}
return 'then3 success'
},function (res) {
console.log('p2fail',res);
}).then(data=>{
console.log(data);
},res=>{
console.log(res);
});
// console.dir(p2);
/*
* Promise 是原生 JS 的一个类;为了解决JS中异步的问题;
* Promise 接受一个参数;这个参数是个回调函数;
* 这个回调函数接收两个参数;
* 第一个参数是用来异步执行成功之后执行的回调函数
* 第二个参数是用来异步执行失败之后执行的回调函数
* 两个回调函数执行只能其中的一个;只要其中一个执行了;那么另一个就不在执行;
* 让成功或者失败函数执行是由自己的代码逻辑决定的;
*
* then 是Promise 原型上的函数 ;他接收两个函数作为参数;
* 第一个函数是个成功的回调,第二个函数是个失败的回调;
* then 返回的是一个新的Promise实例
*
*
* 后边的then执行成功函数或者失败函数,只跟上个then中函数执行的结果有关系;若上个then中函数(不论是成功函数或者失败函数)执行成功;则走下个then的成功函数;执行失败,就走下个then 的失败函数
* 后边的then中的函数接收的参数是上个then中函数执行完的返回结果;
*
*
*
* Promise的实例有三种状态 pending resolved rejected
* pending ---> 实例创建完成时就是个pending;
* resolve执行后 ---> resolved
* reject执行后 ---> rejected
* */
promise的简单使用的更多相关文章
- Promise的简单用法
众所周知的,Javascript是一种单线程的语言,所有的代码必须按照所谓的“自上而下”的顺序来执行.本特性带来的问题就是,一些将来的.未知的操作,必须异步实现.本文将讨论一个比较常见的异步解决方案— ...
- Promise原理 && 简单实现
Promise原理 参考https://github.com/chunpu/promise/blob/master/promise.js 个人认为原博的实现有点问题 在next函数的实现上, 会导致无 ...
- Q promise API简单翻译
详细API:https://github.com/kriskowal/q/wiki/API-Reference Q提供了promise的一种实现方式,现在在node中用的已经比较多了.因为没有中文的a ...
- Javascript中Promise的简单使用
// 函数功能:1秒以后创建一个10以内的随机整数,并判断这个数是否为偶数:如果是偶数则做一件事情,如果是奇数则做另一件事情 function doSomthing() { var promise = ...
- ES6 学习笔记(十三)promise的简单使用
1.什么是promise 在JavaScript中,我们经常会用到回调函数,而回调函数的使用让我们没法使用return,throw等关键字.JS引用promise正好解决了这个问题. promise单 ...
- es6 promise 简单总结
话不多说,直捣主题. promise用途:异步编程的一种解决方案. 优点:比传统的解决方案——回调函数和事件——更合理和更强大. 三种状态:pending(进行中).fulfilled(已成功)和re ...
- ES6深入学习记录(二)promise对象相关
1.Promise的含义 Promise是异步编程的一种解决方案,比传统的解决方案--回调函数和事件更合理和强大.ES6将其写进了语言标准,统一了用法,原生提供了promise对象. 所谓Promis ...
- 细嗅Promise
读完这篇文章,预计会消耗你 40 分钟的时间. Ajax 出现的时候,刮来了一阵异步之风,现在 Nodejs 火爆,又一阵异步狂风刮了过来.需求是越来越苛刻,用户对性能的要求也是越来越高,随之而来的是 ...
- Deferred在jQuery和Angular中的使用与简单实现
Deferred在jQuery和Angular中的使用与简单实现 Deferred是在jQuery1.5版本中加入的,并且jQuery使用它完全重写了AJax,以前也只是偶尔使用.但是上次在使用Ang ...
随机推荐
- Entity Framework Code First 迁移
Entity Framework CodeFirst数据迁移 http://www.cnblogs.com/aehyok/p/3325459.html Entity Framework Code Fi ...
- oracle 备份数据
exp AC_SSO/AC_SSO@HB file=d:\wamp\Golden3C_AuthenticationCenter.dmp owner=AC_SSO full=y用户名/密码@服务 exp ...
- 我的ubuntu连vi都没有??那在命令行怎么编辑文件??
今天弄了个docker下的ubuntu官方镜像,想在镜像里做一点实验,免得把自己的环境写得乱七八糟. 把代码文件mount进去之后,开始编译,但是镜像太干净了,什么工具都没有,于是先装cmake ap ...
- 整体二分例题:POI2011Meteors——Chemist
题目地址:https://www.luogu.org/problemnew/show/P3527#sub 首先这个答案不是操作几次下了几场陨石雨之后的陨石个数,无法在线做,考虑离线做法.暴力的想法就是 ...
- Java SE 开篇
一. Java SE 开篇 1. Java 基本数据类型及其对应的包装类 基本数据类型 对应的包装类 * byte Byte * boolean Boolean * char Character ...
- mqtt遇到的问题锦集
1.无效客户机标识 (2) Connect指令中的KeepAlive有效范围[60秒,300秒],否则会拒绝连接. 2.消息回调出现频繁的断开连接 待解决 3.长时间消息回调出现 已断开连接 (321 ...
- Poj 3189 Steady Cow Assignment (多重匹配)
题目链接: Poj 3189 Steady Cow Assignment 题目描述: 有n头奶牛,m个棚,每个奶牛对每个棚都有一个喜爱程度.当然啦,棚子也是有脾气的,并不是奶牛想住进来就住进来,超出棚 ...
- bzoj1233 [Usaco2009Open]干草堆tower 【单调队列dp】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1233 单调队列优化的第一题,搞了好久啊,跟一开始入手斜率优化时感觉差不多... 这一题想通了 ...
- 2-SAT问题(白书)
1. 定义 给定一个布尔方程,判断是否存在一组布尔变量的真值指派使整个方程为真的问题,被称为布尔方程的可满足性问题(SAT).SAT问题是NP完全的,但对于满足一定限制条件的SAT问题,还是能够有效求 ...
- 洛谷 P1816 忠诚
https://www.luogu.org/problemnew/show/1816 st表模板 #include<cstdio> #include<algorithm> us ...