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的简单使用的更多相关文章

  1. Promise的简单用法

    众所周知的,Javascript是一种单线程的语言,所有的代码必须按照所谓的“自上而下”的顺序来执行.本特性带来的问题就是,一些将来的.未知的操作,必须异步实现.本文将讨论一个比较常见的异步解决方案— ...

  2. Promise原理 && 简单实现

    Promise原理 参考https://github.com/chunpu/promise/blob/master/promise.js 个人认为原博的实现有点问题 在next函数的实现上, 会导致无 ...

  3. Q promise API简单翻译

    详细API:https://github.com/kriskowal/q/wiki/API-Reference Q提供了promise的一种实现方式,现在在node中用的已经比较多了.因为没有中文的a ...

  4. Javascript中Promise的简单使用

    // 函数功能:1秒以后创建一个10以内的随机整数,并判断这个数是否为偶数:如果是偶数则做一件事情,如果是奇数则做另一件事情 function doSomthing() { var promise = ...

  5. ES6 学习笔记(十三)promise的简单使用

    1.什么是promise 在JavaScript中,我们经常会用到回调函数,而回调函数的使用让我们没法使用return,throw等关键字.JS引用promise正好解决了这个问题. promise单 ...

  6. es6 promise 简单总结

    话不多说,直捣主题. promise用途:异步编程的一种解决方案. 优点:比传统的解决方案——回调函数和事件——更合理和更强大. 三种状态:pending(进行中).fulfilled(已成功)和re ...

  7. ES6深入学习记录(二)promise对象相关

    1.Promise的含义 Promise是异步编程的一种解决方案,比传统的解决方案--回调函数和事件更合理和强大.ES6将其写进了语言标准,统一了用法,原生提供了promise对象. 所谓Promis ...

  8. 细嗅Promise

    读完这篇文章,预计会消耗你 40 分钟的时间. Ajax 出现的时候,刮来了一阵异步之风,现在 Nodejs 火爆,又一阵异步狂风刮了过来.需求是越来越苛刻,用户对性能的要求也是越来越高,随之而来的是 ...

  9. Deferred在jQuery和Angular中的使用与简单实现

    Deferred在jQuery和Angular中的使用与简单实现 Deferred是在jQuery1.5版本中加入的,并且jQuery使用它完全重写了AJax,以前也只是偶尔使用.但是上次在使用Ang ...

随机推荐

  1. Canvas 入门案例

    五.  Canvas 入门案例 1.  canvas 圆形绘制 <!DOCTYPE html> <html lang="en"> <head> ...

  2. CF446C [DZY loves Fibonacci]

    Description Transmission Gate 你需要维护一个长度为\(n \leq 300000\) 的数列,兹词两个操作: 1.给一个区间加上一个fibonacci数列,规定\(f[0 ...

  3. 51nod 1068 Bash游戏 V3

    列出前几项可以发现是个规律题,不要被题目的文字所欺骗,字符串处理10^1000即可 #include <bits/stdc++.h> using namespace std; int ge ...

  4. 洛谷 P3332 [ZJOI2013]K大数查询 || bzoj3110

    用树套树就很麻烦,用整体二分就成了裸题.... 错误: 1.尝试线段树套平衡树,码农,而且n*log^3(n)慢慢卡反正我觉得卡不过去 2.线段树pushdown写错...加法tag对于区间和的更新应 ...

  5. Apple Tree POJ - 2486

    Apple Tree POJ - 2486 题目大意:一棵点带权有根树,根节点为1.从根节点出发,走k步,求能收集的最大权值和. 树形dp.复杂度可能是O(玄学),不会超过$O(nk^2)$.(反正这 ...

  6. 【Visual Studio Code 】使用Visual Studio Code + Node.js搭建TypeScript开发环境

    1.准备工作 Node.js Node.js - Official Site Visual Studio Code Visual Studio Code - Official Site 安装Node. ...

  7. PWA之serviceWorker应用

    1.serviceWorker介绍service worker是一段运行在浏览器后台的JavaScript脚本,在页面中注册并安装成功后,它可以拦截和处理网络请求,实现缓存资源并可在离线时响应用户的请 ...

  8. Windows API函数大全一

    1. API之网络函数             WNetAddConnection 创建同一个网络资源的永久性连接             WNetAddConnection2 创建同一个网络资源的连 ...

  9. 可变类型的安全性——更锋利的C#代码小记(2)

    ReadOnlyCollection类型是.NET系统类库提供的一个只读集合类型,它与原来的List<string>不存在任何类型转换关系,因此可以从根本上阻止外部对其的修改操作using ...

  10. .NET 之ViewState的本质

    ViewState是如何实现这些功能. 以名值对的方式来存控件的值,和Hashtable的结构类似: 跟踪那些ViewState中出现改变的值,以便对这些脏数据(dirty)进行进一步的处理: 通过序 ...