JavaScript函数调用返回问题

三种方式,返回同样的结果

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
let f1 = (): Promise=> {
return new Promise((resolve, reject)=> {
resolve("f1");
});
}
let f2 = (str): Promise=> {
return new Promise((resolve, reject)=> {
resolve("f2" + str);
});
}
console.log("方式一");
f1()
.then(result=> {
return f2(result)
})
.then(result => {
return console.log(result)
});
console.log("方式二");
f1()
.then(result=> f2(result))
.then(result => console.log(result));
console.log("方式三");
f1()
.then(f2)
.then(console.log);

结果

1
2
3
4
5
6
方式一
方式一
方式一
f2f1
f2f1
f2f1

console.log首先执行是因为Promise的原因

坚持原创技术分享,您的支持将鼓励我继续创作!