在JavaScript中,Promises提供了一种处理异步操作的方便方法。当Promise被解决或拒绝时,您可能希望执行某些操作,并将其包装在另一个Promise中以处理结果。
下面是一个简单的例子,演示如何包装一个Promise以执行操作并处理结果:
const fetchUserData = () => {
return fetch('https://jsonplaceholder.typicode.com/users/1')
.then(response => response.json())
}
const fetchAndLogUserData = () => {
return fetchUserData()
.then(user => {
console.log(`User name is ${user.name}`)
return user
})
}
fetchAndLogUserData()
.then(user => console.log(`Finished handling user data for ${user.name}`))
在上面的代码中,我们首先定义了一个名为fetchUserData
的函数,它使用fetch
API来拉取用户数据。然后,我们定义了一个名为fetchAndLogUserData
的函数,它调用fetchUserData
并在获得用户数据后打印一条消息。最后,我们在fetchAndLogUserData
返回的Promise上使用了then
方法来处理结果。
请注意,如果您希望在处理拒绝的Promise时具有类似的包装行为,您可以使用catch
方法。例如,您可以修改fetchAndLogUserData
以处理任何错误:
const fetchAndLogUserData = () => {
return fetchUserData()
.then(user => {
console.log(`User name is ${user.name}`)
return user
})
.catch(error => {
console.error(`There was an error: ${error}`)
throw error
})
}
在上面的代码中,我们添加了一个catch
块,用于处理任何错误,并在处理它们后重新抛出错误以终止Promise链。
上一篇:包装婆罗尼图
下一篇:包装Python超类的所有方法