promise() 用法

没有特别的幸运,那么就特别的努力!!!

异步处理:

方法一:在没有出现promise之前,处理异步——延时加载,setTimeout()

	function f1(callback){
        setTimeout(()=>{
            var res = 'f1'
            console.log('我先执行从后台获取到了f1');
            callback(res)
        },1000)
    }
    function f2(value){
        console.log(value);
    }

    f1(f2)      

在这里插入图片描述
方法二:promise

// promise新建后会立即执行
    console.log('hi');
    
    const promise = new Promise(function(resolve,reject){
        console.log('promise');
        resolve()
    })

    promise.then(function(){
        console.log('resolve');
    })

    console.log('hello');

在这里插入图片描述
方法三:async / await

这个代码因为fn 是属于同步的,所以先打印出1,然后是3

async function f1(){
    await fn()
    console.log(2)
}
f1()
function fn(){
    console.log(1)
}
console.log(3)
/**
1
3
2
**/
console.log(3)
async function f1(){
    await fn()
    console.log(2)
}
f1()
function fn(){
    console.log(1)
}
//先后打印顺序===>3 1 2

es6 promise() 用法

Promise 是异步操作,用于解决回调函数和事件
模拟promise环境
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  
  <script>
    let status =  1;
	//账号登录
    let userLogin = (resolve,reject) => {
    	setTimeout(() => {
    		if(status == 1){
    			resolve({data:"登陆成功",msg:"xxxx",token:"afsafsd111"});
    		}else{
    			reject("失败");
    		}
    	},2000);
    };
	//登录成功  获取用户信息
    let getUserInfo = (resolve,reject) => {
    	setTimeout(() => {
    		if(status == 1){
    			resolve({data:"获取用户信息成功",msg:"adsasfsd",token:"afsafsd222"});
    		}else{
    			reject("失败");
    		}
    	},1000);
    }
	//.then回调
    new Promise(userLogin).then(res => {
    	console.log('用户登录成功')
    	console.log(res)
    	return new Promise(getUserInfo)
    }).then(res => {
    	console.log("获取用户信息成功");
    	console.log(res)
    })
  </script>
</body>
</html>
拿着 不谢 请叫我“锤” 谢谢!!!
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值