Promise的then方法

then 方法 then是对象上面的一个方法。它其实是放在 Promise.prototype.then

1:同一个Promise可以调用多次then方法

2:then方法传入的回调函数可以有返回值,返回值是一个新的Promise,具体返回的类型类似于resolve参数

返回值是一个新的Promise时间上是这样一个过程:new Promise(resolve=>{resolve(x)} 会自动执行resolve这块

具体实现看代码

复制代码
 1 //Promise有哪些对象方法
 2 // console.log(Object.getOwnPropertyDescriptors(Promise.prototype));
 3 const promise = new Promise((resolve, reject) => {
 4         resolve('hahahahha')
 5     })
 6     //1:同一个Promise 可以多次调用then方法
 7     //当resolve方法被回调时,所有的then方法传入的回调函数都会被调用
 8 promise.then((res) => {
 9     console.log('res1:', res);
10 })
11 promise.then((res) => {
12         console.log('res2:', res);
13     })
14     //2:then方法传入的回调函数可以有返回值,返回值是Promise
15     //1>返回的是一个普通的值(数值、字符串、普通对象、undefined),这个值作为新的Promise的resolve值
16 promise.then(res => {
17 
18         console.log('原来Promise的res', res);
19         return 'aaaaa'
20     }).then(res => {
21         console.log('新的Promise的then里面的res', res);
22         return 'bbbbbb'
23     }).then(res => {
24         console.log('链式调用', res);
25     }).then(res => {
26         console.log('没有返回值拿到的res:', res);
27     })
28     //2>返回的是Promise 状态由这个新的Promise 决定
29 promise.then(res => {
30 
31         console.log('原来Promise的res', res);
32         return new Promise((resolve, reject) => {
33             setTimeout(() => {
34                 resolve(1111)
35             }, 3000)
36         })
37     }).then(res => {
38         console.log('新的Promise的then里面的res', res);
39     })
40     //3>返回的是一个对象 并且改对象有then方法 那么会执行改then方法,并根据then方法的结果来决定Promise的状态
41 promise.then(res => {
42 
43     console.log('原来Promise的res', res);
44     const obj = {
45         then: function(resolve, reject) {
46             resolve('我是对象里面的then')
47         }
48     }
49     return obj
50 }).then(res => {
51     console.log('新的Promise的then里面的res', res);
52 })
复制代码

 

posted @   沁霓  阅读(1929)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示