相关文章推荐
谦虚好学的紫菜  ·  如何扩展而非覆盖TypeScript现有类型 ...·  3 月前    · 
胆小的煎饼果子  ·  恐龙快打电脑破解版-恐龙快打电脑破解版下载-漫漫看·  11 月前    · 
坚强的领带  ·  Axure PR 9 ...·  1 年前    · 
咆哮的地瓜  ·  钱塘区教师招聘网-2024-2025年杭州钱 ...·  1 年前    · 
粗眉毛的作业本  ·  江苏省信访局 人事信息 ...·  1 年前    · 
光明磊落的豆腐  ·  MISRA-C编程规范 - ...·  1 年前    · 
Code  ›  我可以使用TypeScript在同步函数中等待异步操作循环完成吗?开发者社区
typescript
https://cloud.tencent.com/developer/ask/sof/185228
英勇无比的筷子
1 年前
首页
学习
活动
专区
工具
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现有类型声明?含接口重载添加
3 月前
胆小的煎饼果子  ·  恐龙快打电脑破解版-恐龙快打电脑破解版下载-漫漫看
11 月前
坚强的领带  ·  Axure PR 9 保姆级使用教程_原型_画布_页面
1 年前
咆哮的地瓜  ·  钱塘区教师招聘网-2024-2025年杭州钱塘区教师招聘考试,杭州钱塘区教师编制考试,杭州钱塘区教师入编考试-浙江教师招聘网
1 年前
粗眉毛的作业本  ·  江苏省信访局 人事信息 全国信访系统“六优”拟推荐对象公示
1 年前
光明磊落的豆腐  ·  MISRA-C编程规范 - QIYUEXIN - 博客园
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号