在处理异步操作时,我们经常会使用Promise的then
和catch
来处理成功和失败的情况。当我们在这些回调函数中有相同的代码时,重复代码会导致代码冗余和维护困难。为了避免重复代码,可以使用以下解决方法:
then
和catch
中分别调用该变量。const handleSuccess = () => {
// 处理成功的代码
};
const handleFailure = () => {
// 处理失败的代码
};
someAsyncOperation()
.then(handleSuccess)
.catch(handleFailure);
finally
方法:finally
方法会在Promise结束时(不管是成功还是失败)都会执行,可以将重复的代码放在finally
中。someAsyncOperation()
.then(() => {
// 处理成功的代码
})
.catch(() => {
// 处理失败的代码
})
.finally(() => {
// 避免重复的代码
});
async/await
可以让异步代码看起来更像同步代码,可以在try/catch
块中处理成功和失败的情况,并避免重复代码。async function handleAsyncOperation() {
try {
// 处理异步操作
const result = await someAsyncOperation();
// 处理成功的代码
} catch (error) {
// 处理失败的代码
} finally {
// 避免重复的代码
}
}
handleAsyncOperation();
以上是几种常见的解决方法,根据具体情况选择适合的方法来避免在then
和catch
中重复相同的代码。