Promise的使用

Promise是ES6新增的一个对象,咳咳,要想使用这个对象,首先需要…

1、对象的创建

new Promise();

接下来就可以使用了,具体怎么使用呢?Promise这个对象可以传入一个函数。

new Promise(function() {
	console.log("123");
});

接下来就可以在函数中进行操作
注意,传入promise对象内的函数里面的代码是同步执行的,所以输出结果为123
但是(But)Promise就是为了解决异步处理而生的!
Promise的中文是——承诺,所以承诺会有两种结果resolve(解决) reject(拒绝)
要么接受并解决,要么直接拒绝

new Promise(function(resolve, reject) {

	})

那么具体应该怎么(resolve)解决和(reject)拒绝呢?

2、其实非常非常简单,只需要把resolve和reject在传入promise对象内的函数里面调用一下就可以了

new Promise(function(resolve, reject) {
	resolve();
	reject();
})

除了Peomise对象传入的函数里面的代码是同步执行的Promise()对象还会返回一个promise值,所以我们就来接收一下

let p = new Promise(function(resolve, reject) {
	resolve();
	reject();
})

接收到的p的值是一个primise对象,这个对象会有一个then()方法
(不要问我是怎么知道的,问就是规定)
这个then()方法需要两个函数分别来处理resolve(解决)和reject(拒绝)的操作

let p = new Promise(function(resolve, reject) {
	resolve();
	reject();
})
p.then(function() {
	console.log(123);
}, function() {
	console.log(456);
})

输出结果为123,有没有猜对呢?
其实也好理解,一个承诺要么解决了,要么直接拒绝,这又不是薛定谔的承诺,这是大家的承诺!

3、拓展

3.1、还可以在resolve(解决)和reject(拒绝)两个方法里面传值

let p = new Promise(function(resolve, reject) {
	resolve("你好,世界");
	reject("世界,你好");
})
p.then(function() {
	console.log();
}, function() {
	console.log();
})

因为有了实参,所以必须要有形参,但是形参在哪里定义,这是个问题(This is a question)
如下图所示形参需要在处理resolve(解决)和reject(拒绝)的两个方法里面定义!

let p = new Promise(function(resolve, reject) {
	resolve("你好,世界");
	reject("世界,你好");
})
p.then(function(date) {
	console.log(date);
}, function(val) {
	console.log(val);
})

输出结果为你好世界
所以得到一个结论,resolve(解决)和reject(拒绝)传入的实参 == 解决方法的形参

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值