Frozen5293's blog Frozen5293's blog
首页
  • 游戏开发
  • 博客相关
  • 技术问题
  • 分类
  • 标签
  • 归档
  • 友情链接
关于
GitHub (opens new window)

Frozen5293

刀剑钺戟摧狂浪,山河草木岁众生
首页
  • 游戏开发
  • 博客相关
  • 技术问题
  • 分类
  • 标签
  • 归档
  • 友情链接
关于
GitHub (opens new window)
  • promise

frozen5293
2023-08-16
前端 web

promise

promise

new Promise((resolve,reject)=>{
  console.log("==Level One")
  resolve("one level return")
})
.then(
  (res)=>{
    console.log("==Level Two")
    setTimeout(()=>{
      new Promise((r,j)=>{
        console.log("Timeout Promise");
        setTimeout(()=>{r("Timeout Promise 1s Return")},1000);
        return "ss";
      }).then((res)=>{
        console.log("Timeout Promise then");
        console.log(res)});
    },1000);
    console.log(res)
  },
  err=>{
    console.log("==Level Two");
    console.log(err)}
)
.catch(()=>{})

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

结果

==Level One debugger eval code:3:11
==Level Two debugger eval code:8:13
one level return debugger eval code:18:13
Promise { <state>: "fulfilled", <value>: undefined }

Timeout Promise debugger eval code:11:17
Timeout Promise then debugger eval code:15:17
Timeout Promise 1s Return
1
2
3
4
5
6
7
8
new Primise.reslove("test")
  .then((mail) => {
    console.log(mail);
  })
  .catch((err) => {
    console.error(err);
  })
  .finally(() => {
    console.log('Experiment completed');
  });
1
2
3
4
5
6
7
8
9
10

提示

promise 是链式调用的,并且存在层级
如果使用一个变量then,注意保存的层级,同层级的then会同时调用
finally 当此promise 被敲定是 会被调用
1
2
3

api

Promise.all()
    在所有传入的 Promise 都被兑现时兑现;在任意一个 Promise 被拒绝时拒绝。
Promise.allSettled()

    在所有的 Promise 都被敲定时兑现。
Promise.any()

    在任意一个 Promise 被兑现时兑现;仅在所有的 Promise 都被拒绝时才会拒绝。
Promise.race()

    在任意一个 Promise 被敲定时敲定。换句话说,在任意一个 Promise 被兑现时兑现;在任意一个的 Promise 被拒绝时拒绝。
1
2
3
4
5
6
7
8
9
10
11
编辑 (opens new window)
#promise#js#ts
上次更新: 2024/04/16, 00:35:21
最近更新
01
Rust序列化函数
04-29
02
Rust错误处理
04-29
03
1
04-29
更多文章>
Theme by Vdoing | Copyright © 2019-2024 Frozen5293 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式