所以这是来自@ Roamer-1888的真正美女:
from Crypto.PublicKey import RSA
new_key = RSA.generate(2048, e=65537)
public_key = new_key.publickey().exportKey("PEM")
private_key = new_key.exportKey("PEM")
fileWrite(fileName, data):
fd = open(fileName, 'wb')
fd.write(data)
fd.close()
fileWrite('privkey.der', private_key)
fileWrite('pubkey.der', public_key)
它是一个连续执行的promise循环。我有两个问题:
我应该在循环中插入一个catch吗?
executePromiseLoop(myArray).catch(logError).then(() => console.log('yay!'));
function executePromiseLoop(arr) {
return arr.reduce(function(promise, email) {
return promise.then(function() {
return myCustomPromise(email);
});
}, Promise.resolve());
}
答案 0 :(得分:3)
如果循环中的promise失败,它会退出循环会发生什么?
是。如果拒绝单个承诺,则不会执行所有下一个承诺。例如,请参阅此代码:
Promise.resolve()
.then(Promise.reject)
.then(() => console.log('this will not be executed'))
.catch(() => console.log('error'))

第三行中的承诺不会被执行,因为之前的承诺被拒绝了。
我应该在循环中实现catch,还是会失败传播回调用函数?
拒绝消息将传播,因此您不需要在循环内使用catch。例如,请参阅此代码:
Promise.resolve()
.then(() => Promise.resolve())
.then(() => Promise.reject('something went wrong'))
.then(() => Promise.resolve())
.then(() => Promise.resolve())
.catch(error => console.log(error))