promise对象调试
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
const p1 = new Promise(function (resolve, reject) {
setTimeout(() => resolve("test"), 2000)
}) const p2 = new Promise(function (resolve, reject) {
//经过调试发现,resolve的内容和状态能被传入的promise实例覆盖,如果是reject则不能被覆盖。
setTimeout(() => reject(p1), 3000)
}) console.log(p1);
console.log(p2);
p2
.then(function(result) {
console.log(result);
return "chenyujie";})
.catch(function(error ) {
console.log("testsss");
console.log(error);
return p2;})
.then(function(result) {
console.log(result);
console.log(this);},
function(error){
console.log("zhongguo");
console.log(error);
})
// .catch(result => {
// console.log(result);
// })
</script>
</body>
</html>
then函数返回一个promise对象,promise对象有两个基本属性,状态和结果,其中then回调函数的返回值如果是字符串则直接为结果,状态为fulfilled,如果返回值为promise对象,则以对象状态和结果为准。(具体情况可以调试看,不一定准确,该对象有点麻烦)

var XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest;
const getJSON = function(url) {
const promise = new Promise(function(resolve, reject){
const handler = function() {
if (this.readyState !== 4) {
return;
}
// console.log(this);
if (this.status === 200) {
console.log(this.responseType)
resolve(this.responseType);
} else {
console.log(this.status)
console.log("-------------"+this.statusText+"----------------")
reject(new Error(this.statusText));
}
};
const client = new XMLHttpRequest();
//client.open("GET", url, false); //第三个参数设置为false,使得函数执行为同步操作
client.open("GET", url);
client.onreadystatechange = handler;
client.responseType = "html";
client.setRequestHeader("Accept", "text/html");
console.log("test1")
client.send();
console.log("test2")
});
return promise;
};
//getJSON("https://www.baidu.com/wang")
getJSON("https://www.baidu.com/wang").then(function(json) {
console.log('Contents: ' + json);
}, function(error) {
console.log('出错了', error);
});
promise对象调试的更多相关文章
- Angularjs promise对象解析
1.先来看一段Demo,看完这个demo你可以思考下如果使用$.ajax如何处理同样的逻辑,使用ng的promise有何优势? var ngApp=angular.module('ngApp',[]) ...
- ECMAScript6的Promise对象
1. 概念 Promise对象用于异步(asynchronouss)计算,一个Promise对象代表着一个还未完成,但预期完成的操作. 2. 出现原因: 1) 如果你需要通过ajax发送多次请求,而 ...
- ES6 - promise对象
Promise的设计初衷 我们使用ajax请求数据,得到数据后再对数据进行操作,可是有时候,对得到的数据进行操作的过程中,可能又要用到ajax请求,这时,我们的代码就变成了这样: $.ajax({ s ...
- 这次聊聊Promise对象
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由前端林子发表于云+社区专栏 Promise是CommonJS提出的一种规范,在ES6中已经原生支持Promise对象,非ES6环境可以 ...
- 教你如何使用ES6的Promise对象
教你如何使用ES6的Promise对象 Promise对象,ES6新增的一个全新特性,这个是 ES6中非常重要的一个对象 Promise的设计初衷 首先,我们先一起了解一下,为什么要设计出这么一个玩意 ...
- angular学习笔记(二十八-附2)-$http,$resource中的promise对象
下面这种promise的用法,我从第一篇$http笔记到$resource笔记中,一直都有用到: HttpREST.factory('cardResource',function($resource) ...
- ES6深入学习记录(二)promise对象相关
1.Promise的含义 Promise是异步编程的一种解决方案,比传统的解决方案--回调函数和事件更合理和强大.ES6将其写进了语言标准,统一了用法,原生提供了promise对象. 所谓Promis ...
- es6中的promise对象
Promise是异步里面的一种解决方案,解决了回调嵌套的问题,es6将其进行了语言标准,同意了用法,提供了`promise`对象, promise对象有三种状态:pending(进行中) .Resol ...
- ES6的promise对象应该这样用
ES6修补了一位Js修真者诸多的遗憾. 曾几何时,我这个小白从js非阻塞特性的坑中爬出来,当我经历了一些回调丑陋的写法和优化的尝试之后,我深深觉得js对于多线程阻塞式的开发语言而言,可能有着其太明显的 ...
随机推荐
- VMware workstation虚拟机配置文件不兼容无法使用解决方法
VMware workstation虚拟机配置文件不兼容无法使用解决方法打开VMware workstation虚拟机提示:配置文件"--.vmx"是由Vmware产品创建,但该产 ...
- 雪花算法(SnowFlake)Java实现
分布式id生成算法的有很多种,Twitter的SnowFlake就是其中经典的一种. 算法原理 SnowFlake算法生成id的结果是一个64bit大小的整数,它的结构如下图: 1bit,不用,因为二 ...
- Python+API接口测试框架设计(pytest)
1.测试框架简介 整个接口测试框架的设计图如下: base:存放的是请求方法二次封装 common:存放的是自定义工具,操作excel,yaml文件等 data:存放的是公共动态数据,如data.xl ...
- springboot-1-入门
springboot-1-入门 1.springboot简介,背景 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 2.极简hellowor ...
- MySQL Orchestrator自动导换+VIP切换
目录 Orchestrator总体结构... 测试环境信息... Orchestrator详细配置... SSH免密配置... /etc/hosts配置... visudo配置... /e ...
- 第一章 Vant的引入和基本使用
Vant UI组件库基本使用 一.Vant官网 https://youzan.github.io/vant/#/zh-CN/ 二.安装Vant npm install --save vant 三.安装 ...
- mysql查看当前连接数
show status like 'Threads%'; 需要root权限才能看到所有的连接
- JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)
检测
- Pytorch Torchvision Transform
Torchvision.Transforms Transforms包含常用图像转换操作.可以使用Compose将它们链接在一起. 此外,还有torchvision.transforms.functio ...
- 大数据学习(11)—— Hive元数据服务模式搭建
这一篇介绍Hive的安装及操作.版本是Hive3.1.2. 调整部署节点 在Hadoop篇里,我用了5台虚拟机来搭建集群,但是我的电脑只有8G内存,虚拟机启动之后卡到没法操作,把自己坑惨了. Hive ...