一个简单的Promise / 网络研习社#44

一个简单的Promise / 网络研习社#44

promise.jpg

Promise ,和日常生活中的常识一样,都是承诺在未来做某件事!在生活中我们一天要安排做很多事,会排一个计划表,哪些事做完了再去做另一件事,但是所有的事情我都做好了安排,一定会在某个时间去做,这就是Promise!

和我们生活中类似的,程度要有计划地连续完成很多事,这种做事的方法在程序中称为异步。与之相对的同步,就是一件件做事情,没有计划。比如快递员派发快递,他在发完一个人后再发另一个人!这种方法肯定很糟糕,现实中没人会这么干。有经验的快递员肯定有更好的办法,比如他会同时通知所有人来取快递,谁先来谁就先取,快递很快就会发完,这种做事的方法就是异步。计算机程序也是采用类似异步的方法来执行事务。

在JavaScript中Promise 就是一个好的异步的方法。它会做好一个时间表,先把事情安排好,一件事做完了再做另一件事,这样的办事效率很高。所以,JavaScript可以看到大量的Promise 方法。在SteemJs中几乎都是Promise ,比如获取热门文章的方法:

1
2
3
steem.api.getDiscussionsByHot(query, function(err, result) {
console.log(err, result);
});

方法成功了会得到结果,失败了会得到错误。不过,它做了封装,不大能看得到过程。

来学习一个简单的Promise ,入个门,自己也能写写。

1
2
3
4
5
6
7
8
9
10
let p = new Promise((resolve, reject) => {
resolve() //成功的调用
//reject(err) 失败的调用
})
p.then(res => {
alert("2019,hello world!")
})
p.catch(err => {
alert("big error!")
})

Promise一创建就会立即执行,读入resolve, reject这两个函数。当函数成功,则执行.then内的方法,否则catch到错误 !上面是一个简单的表述,比较容易理解。如果不够具体,可以看下廖雪峰的博客,里面蛮多教程的。


This page is synchronized from the post: ‘一个简单的Promise / 网络研习社#44’

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×