博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
//……关于promise
阅读量:6085 次
发布时间:2019-06-20

本文共 1281 字,大约阅读时间需要 4 分钟。

什么是promise?

promise 翻译成中文的意思是 "承诺" ,一个承诺说出去了说明他是进行中的,承诺兑现了代表成功,没有兑现代表失败了。

promise 对象的状态一旦发生改变,就不可逆

 

promise有三个状态:

pending  进行中

resolved   成功  成功后执行 promise 的 then() 方法的第一个参数,第二个参数是指失败后执行的参数

rejected   失败  失败后还可以执行 promise 的 catch() 方法的参数

 

大白话:假期我承诺 “不打游戏” ,这个承诺就是 pending 状态。假期后没打游戏,就代表这个承诺成功了,就是 resolve 状态,可以给自己一个奖励,这个奖励用 then() 方法执行,反之就是失败了,就是 rejected 状态,给自己一个惩罚,这个惩罚就是 catch() 方法。

 

promise 是一个用来解决异步问题的构造函数。

解决定时器的异步,使定时器同步执行

function fn(){  var pro = new Promise( function(succ,failed){    setTimeout( function(){      console.log( 1 );       succ();    } , 1000)  } )  return pro;} var promise = fn();promise.then( function(){  console.log( 2 )} )

 解决 ajax 的异步,使其同步执行

//ajax封装 使用promise对象function ajaxPromise(url){	var pro = new Promise(function(succ,failed){		var ajax = new XMLHttpRequest();		ajax.open( "get" , url );		ajax.send();		ajax.onreadystatechange = function(){			if( ajax.readyState == 4 && ajax.status == 200 ){				//成功了 ajax.responseText				succ(ajax.responseText);//通知promise对象ajax请求服务器的数据成功了			}		}		//承诺多久后如果没有通知promise对象成功  就通知失败		setTimeout( function(){			failed("请求服务器失败");		},5000 )	})		return pro;}var pro = ajaxPromise("../data.json");pro.then( function(msg){	alert( msg );},function(msg){	alert( msg );} )

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/jerome92/p/10315737.html

你可能感兴趣的文章
【框架整合】Maven-SpringMVC3.X+Spring3.X+MyBatis3-日志、JSON解析、表关联查询等均已配置好...
查看>>
要想成为高级Java程序员需要具备哪些知识呢?
查看>>
带着问题去学习--Nginx配置解析(一)
查看>>
onix-文件系统
查看>>
java.io.Serializable浅析
查看>>
我的友情链接
查看>>
多线程之线程池任务管理通用模板
查看>>
CSS3让长单词与URL地址自动换行——word-wrap属性
查看>>
CodeForces 580B Kefa and Company
查看>>
开发规范浅谈
查看>>
Spark Streaming揭秘 Day29 深入理解Spark2.x中的Structured Streaming
查看>>
鼠标增强软件StrokeIt使用方法
查看>>
本地连接linux虚拟机的方法
查看>>
某公司面试java试题之【二】,看看吧,说不定就是你将要做的题
查看>>
BABOK - 企业分析(Enterprise Analysis)概要
查看>>
Linux 配置vnc,开启linux远程桌面
查看>>
CentOS6.4关闭触控板
查看>>
React Native 极光推送填坑(ios)
查看>>
Terratest:一个用于自动化基础设施测试的开源Go库
查看>>
修改Windows远程终端默认端口,让服务器更安全
查看>>