Promise学习探究

学习熟知吧,原理仍是继续吧promise

例子1:
var isGeted; 
function getRet(){
	return new Promise(function(resolve, reject) {
		//一些异步操做
  		if(isGeted){
  			resolve("yYYYYYYY")
  		}
  		else{
  			reject("NNNNNNNNNNNNNNNNNN")
  		}
	});
}
isGeted=true;
getRet().then(function(data){
	console.log("返回数据:"+data)
});




isGeted=false;
getRet().then(function(data){
	console.log("返回数据:"+data)
}).catch(function(err){
	console.log("错误:"+err)
});



例子2:
Promise原理探究:
var promise1 = new Promise(function(resolve, reject) {
  
	//某个异步方法
	setTimeout(function() {
    
		resolve('foo');
  
	}, 300);

});


promise1.then(function(value) {
  
	console.log(value);
  
});


console.log(promise1);  //返回:promise对象,状态是pending   "foo"
console.log(promise1);  //返回:promise对象,状态是resolved
 

promise像一个代理,异步方法不知道执行结果,promise预约好,成功执行某方法,失败执行某方法,让异步方法按照成功与失败的设定路线去执行。
又像是个状态管理工具,状态只有三种:resolved,rejected,pending
pending---->resolved
pending---->rejected


promise1.then(function(value) {
  
	console.log(value);
  
}).catch(function(err){
	
});

then其实接受两个函数参数,以下:
promise1.then(function(value) {
  
	console.log(value);
  
},function(err){
	console.log(err);
})
一个是resolve函数,一个是reject函数。


new Promise后就会被执行一次,因此通常外面包成一个函数,如:
var funOne = function(){
	return new Promise(function(resolve,reject){

	})
}
funOne.then().then().catch().finally().race().all()等等。

  

略。异步

相关文章
相关标签/搜索