javascript - CoffeeScript Promise 中的 for 循环

标签 javascript for-loop promise coffeescript

我有一个 CoffeeScript ,我希望向一个对象添加 100 个合法保留。

要添加一个,我执行以下操作:

  .then (data) =>
      s3.addLegalHold({
        Bucket: bucketName,
        Key: 'foo',
        RetentionLegalHoldId: 'holdid'
      }).promise()

要添加 100,我尝试了此操作,但不起作用:

  .then (data) =>
    for i in [0 .. 99]
      console.log('count: ' + i)
      s3.addLegalHold({
        Bucket: bucketName,
        Key: 'foo',
        RetentionLegalHoldId: 'holdid' + i
      }).promise()

我的 console.log('count: ' + i) 上升到 99,但测试完成后我只能看到一个合法保留。我猜这与 promise 有关,但我不确定。我该怎么做?

最佳答案

您将需要使用Promise.all循环评估的 promise 数组:

  .then (data) =>
    Promise.all( for i in [0 ... 100]
      console.log ('count: ' + i)
      s3.addLegalHold {
        Bucket: bucketName,
        Key: 'foo',
        RetentionLegalHoldId: 'holdid' + i
      }
      .promise() )

这将为您带来一系列结果的 promise 。

关于javascript - CoffeeScript Promise 中的 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52400605/

相关文章:

javascript - 从图像中提取 exif 方向数据

javascript - For 循环第二个参数令人困惑

angularjs - Jasmine 测试返回 promise 的 ajax 请求

javascript - React 在 props 改变时取消 Promise

jquery - 如何在 JQuery 中 "or"两个 Promise

javascript - 删除对象中的错误值

javascript - 如何在 JavaScript 中检查电子邮件 ID 是否存在?

javascript - 如何在Web应用程序中绑定(bind)系统快捷方式?

python - 为什么我的 "if"语句在使用 "break"函数时没有退出?

python - 有条件重采样以获得月平均值