在 coffeescript promise 中循环
for loop in coffeescript promise
我有一个 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,但在测试完成后我只能看到一个合法保留。我想这与承诺有关,但我不确定。我该怎么做?
试试这个:
.then (data) =>
promises = []
for i in [0 .. 99]
promises.push(s3.addLegalHold({
Bucket: bucketName,
Key: 'foo',
RetentionLegalHoldId: 'holdid' + i
}).promise())
return Promise.all(promises)
关键区别在于Promise.all
(MDN)。它需要一系列承诺(在你的例子中,100 个承诺),等待所有承诺解决,然后自行解决。
您将希望在您的循环评估为的承诺数组上使用 Promise.all
:
.then (data) =>
Promise.all( for i in [0 ... 100]
console.log ('count: ' + i)
s3.addLegalHold {
Bucket: bucketName,
Key: 'foo',
RetentionLegalHoldId: 'holdid' + i
}
.promise() )
这将为您提供一组结果的承诺。
我有一个 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,但在测试完成后我只能看到一个合法保留。我想这与承诺有关,但我不确定。我该怎么做?
试试这个:
.then (data) =>
promises = []
for i in [0 .. 99]
promises.push(s3.addLegalHold({
Bucket: bucketName,
Key: 'foo',
RetentionLegalHoldId: 'holdid' + i
}).promise())
return Promise.all(promises)
关键区别在于Promise.all
(MDN)。它需要一系列承诺(在你的例子中,100 个承诺),等待所有承诺解决,然后自行解决。
您将希望在您的循环评估为的承诺数组上使用 Promise.all
:
.then (data) =>
Promise.all( for i in [0 ... 100]
console.log ('count: ' + i)
s3.addLegalHold {
Bucket: bucketName,
Key: 'foo',
RetentionLegalHoldId: 'holdid' + i
}
.promise() )
这将为您提供一组结果的承诺。