【发布时间】:2021-12-31 23:18:35
【问题描述】:
我有一个承诺链
如果我在 getServiceCost 中收到错误,我想再次重复该链(重试)2 次,在使用 Promise 链时如何实现这一点,这意味着再次执行 getUser、getServiceCost
getUser(100)
.then(getServices)
.then(getServiceCost)
.then(console.log);
function getUser(userId) {
return new Promise((resolve, reject) => {
console.log('Get the user from the database.');
setTimeout(() => {
resolve({
userId: userId,
username: 'admin'
});
}, 1000);
})
}
function getServices(user) {
return new Promise((resolve, reject) => {
console.log(`Get the services of ${user.username} from the API.`);
setTimeout(() => {
resolve(['Email', 'VPN', 'CDN']);
}, 3 * 1000);
});
}
function getServiceCost(services) {
return new Promise((resolve, reject) => {
console.log(`Calculate the service cost of ${services}.`);
setTimeout(() => {
resolve(services.length * 100);
}, 2 * 1000);
});
}
如果我在 getServiceCost 中收到错误,我想再次重复链(重试)2 次,使用 Promise 链时如何实现这一点,意味着再次执行 获取用户,获取服务成本
【问题讨论】:
-
只有第三件事失败的时候,你想从开始开始?
-
没错@T.J.Crowder
标签: javascript node.js promise es6-promise