首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以使用TypeScript在同步函数中等待异步操作循环完成吗?

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

Stack Overflow用户
提问于 2018-09-10 06:11:45
回答 1查看 43关注 0票数 -1

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

EN

回答 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
             }
        )
);
Promise.all(promises)
   .then(
      () => {
          // Perform your post render tasks here
      }
    );
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52249016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档