一个简单的Promise / 网络研习社#44
cn·@lemooljiang·
0.000 HBD一个简单的Promise / 网络研习社#44
 Promise ,和日常生活中的常识一样,都是承诺在未来做某件事!在生活中我们一天要安排做很多事,会排一个计划表,哪些事做完了再去做另一件事,但是所有的事情我都做好了安排,一定会在某个时间去做,这就是Promise! 和我们生活中类似的,程度要有计划地连续完成很多事,这种做事的方法在程序中称为异步。与之相对的同步,就是一件件做事情,没有计划。比如快递员派发快递,他在发完一个人后再发另一个人!这种方法肯定很糟糕,现实中没人会这么干。有经验的快递员肯定有更好的办法,比如他会同时通知所有人来取快递,谁先来谁就先取,快递很快就会发完,这种做事的方法就是异步。计算机程序也是采用类似异步的方法来执行事务。 在JavaScript中Promise 就是一个好的异步的方法。它会做好一个时间表,先把事情安排好,一件事做完了再做另一件事,这样的办事效率很高。所以,JavaScript可以看到大量的Promise 方法。在SteemJs中几乎都是Promise ,比如获取热门文章的方法: ``` steem.api.getDiscussionsByHot(query, function(err, result) { console.log(err, result); }); ``` 方法成功了会得到结果,失败了会得到错误。不过,它做了封装,不大能看得到过程。 来学习一个简单的Promise ,入个门,自己也能写写。 ``` 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到错误 !上面是一个简单的表述,比较容易理解。如果不够具体,可以看下廖雪峰的博客,里面蛮多教程的。
👍 liangfengyouren, skenan, blc, catwomanteresa, davidke20, julian2013, elizacheng, kimzwarch, joeliew, archisteem, penguinpablo, bluemist, cryptonized, dancingapple, ew-and-patterns, tengri, floatinglin, lemooljiang, amryksr, jamjamfood, tvb, zmm, htliao, moneybaby, rivalhw, cn-reader, freakerz, coindzs, bring, laodr, sasaadrian, ooairbb, hujezd, ace108, mia-cc, nostalgic1212, yellowbird, sweetsssj, alex2016, nujiko, zumed, hqy, susanli3769, joythewanderer, etherpunk, ericet, andrewma, idx, abit, xiaoshancun, rocketteam,