Ts如何获取 Promise 下的[[Target]]中的数据
时间: 2024-09-19 16:15:38 浏览: 61
在TypeScript中,当你有一个Promise实例,想要访问其中包含的数据(通常在`then`或`catch`块内的函数返回),你需要使用`.then()`或`.catch()`方法来链式解析这个Promise。`[[Target]]`是一个内部表示,一般不是直接操作的对象,但在JavaScript中,Promise的`then`方法会返回一个新的Promise,该新Promise的`.value`或`.reason`属性分别会在成功或失败时包含原Promise的目标结果或原因。
下面是一个简单的示例,假设我们有一个获取数据的Promise,然后从`then`回调中提取数据:
```typescript
function fetchData(): Promise<Data> {
return new Promise((resolve, reject) => {
// 假设你的API请求在这里
setTimeout(() => {
const data = { id: 1, name: 'John' };
resolve(data); // 成功时,将数据作为resolve的第一个参数传递
}, 1000);
});
}
// 获取Promise的结果
fetchData()
.then((response: Data) => {
// 这里可以直接访问到response的数据,比如 response.id 或 response.name
console.log(response.id);
})
.catch((error: Error) => {
// 处理错误
console.error(error);
});
```
在这个例子中,`response`就是`[[Target]]`,你可以直接通过它访问到Promise中成功时返回的数据。
阅读全文