<script>
/**
* 假定我们有这样一个需求:某人和青梅竹马的芳芳约定,如果十年后她还没嫁,就嫁给我
* 这个需求中就含有异步逻辑的处理,芳芳要不要嫁给我需要等待10年后才会知晓
*/
// console.log(10);
// setTimeout(function() {
// console.log('十年到了,该嫁了');
// if('没房没车') {
// setTimeout(function() {
// console.log('十年到了,该嫁了');
// }, 1000 * 5);
// }
// }, 1000 * 10);
// console.log(20);
// 大部分解决异步逻辑的方式是添加回调函数,
// 但是这种方式存在弊端, 如果异步逻辑还有异步逻辑就会嵌套, 不好维护
// 还有一大弊端,就是异步处理逻辑必须一开始就得设计好
// 使用promise
// 第一步: new Promise
// 需要传一个回调函数, 这个函数供promise使用,promise在使用它的时候会传入两个方法yes与no
let p = new Promise(function(yes, no) {
setTimeout(function() {
no();
}, 1000 * 10);
});
// 第二步: 调用实例的then方法做事情,这个then添加的方法会在承诺生效后执行
p.then(
() => console.log('十年到了,得准备钱了'),
() => console.log('十年到了,该吃吃该花花,反正也没啥用')
);
// then方法后续还可以调用无数次,每次添加都不用修改上面的代码,相对而言维护起来比较方便
p.then(
() => console.log('十年到了,芳芳终于嫁给我了'),
() => console.log('绝望将伴随我一生')
);
// 如果你觉得then每次写两个回调太墨迹,但是还想在失败的时候做一些处理,那么可以使用catch解决
p.catch(
() => console.log('绝望将伴随我一生')
);
</script>
02_10.promise的初步使用
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 小学语文修改病句的方法 修改病句是小学语文考试中常见的题型,在修改病句之前,我们应该清晰的了解有哪些病句现象,下面...
- 这篇文章主要是讨论通过组合WHERE子句来建立功能更强,更高级的搜索条件,其中包括NOT和IN操作符 此前我们讲过...