相关文章推荐
烦恼的手电筒  ·  TypeScript 对象数组的类型 - 炽橙子 ·  2 周前    · 
眼睛小的单车  ·  TypeScript入门到精通——TypeS ...·  2 周前    · 
不要命的拖把  ·  已声明“XXX”,但从未读取其值。ts(61 ...·  6 小时前    · 
爱健身的灭火器  ·  golang使用Futures模式达到并行运 ...·  3 月前    · 
还单身的灯泡  ·  网络通信的基础知识_用户进程和套接字的关系_ ...·  1 年前    · 
俊逸的火锅  ·  框架学习 - 若依 / ...·  1 年前    · 
机灵的烈马  ·  vue中使用定时器setInterval和s ...·  1 年前    · 
Code  ›  我可以使用TypeScript在同步函数中等待异步操作循环完成吗?开发者社区
typescript
https://cloud.tencent.com/developer/ask/sof/185228
英勇无比的筷子
7 月前
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
提问

问 我可以使用TypeScript在同步函数中等待异步操作循环完成吗?

Stack Overflow用户
提问于 2018-09-10 06:11:45
EN

我有一个foreach循环,它执行许多异步函数,这些函数接收数据并呈现一个表。我想在所有异步之后调用第二个函数。foreach循环中的调用已完成,并且表被呈现。

1 43 0 票数 -1
EN
typescript
asynchronous
foreach

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-10 06:23:43

可以,停那儿吧。让每一个你称之为承诺的行动。将所有这些承诺保存为一个数组,然后调用 Promise.all

代码语言: javascript
复制
const promises:Promise<{}>[] = [];
myWhatever.forEach(
    item => {
         const promise = new Promise<{}>(
             (resolve, reject) => {
                 // Do something which ends up with resolve getting called
                 // at some point
         promises.push(promise);
Promise.all(promises)
   .then(
      () => {
          // Perform your post render tasks here
    );

您可以通过用 map 替换 forEach 来进一步简化这一过程

代码语言: javascript
复制
const promises = myWhatever.map(
    item =>
        new Promise<{}>(
             (resolve, reject) => {
                 // Do something which ends up with resolve getting called
                 // at some point
 
推荐文章
烦恼的手电筒  ·  TypeScript 对象数组的类型 - 炽橙子
2 周前
眼睛小的单车  ·  TypeScript入门到精通——TypeScript类型系统基础——数组类型 - 左扬
2 周前
不要命的拖把  ·  已声明“XXX”,但从未读取其值。ts(6133)_已声明“el”,但从未读取其值 ts
6 小时前
爱健身的灭火器  ·  golang使用Futures模式达到并行运算_golang completefuture-CSDN博客
3 月前
还单身的灯泡  ·  网络通信的基础知识_用户进程和套接字的关系_燕然一勒的博客-CSDN博客
1 年前
俊逸的火锅  ·  框架学习 - 若依 / RuoYi-Vue-Plus_MichelleChung的博客-CSDN博客
1 年前
机灵的烈马  ·  vue中使用定时器setInterval和setTimeout_wuxing164的博客-CSDN博客
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号