如何返回 Promise 并从中获取数据? [复制]
Posted
技术标签:
【中文标题】如何返回 Promise 并从中获取数据? [复制]【英文标题】:How do I return a Promise and get the data from it? [duplicate] 【发布时间】:2022-01-10 06:56:06 【问题描述】:我无法创建一个函数来返回我想使用 Promise 使用的数据“数组”。 我使用的技术栈是 Angular、Typescript 和 Express.js。我可以让数据在 getData() 函数内部返回,但是,数据没有在 return 语句中传递,我只是在 ngOnInit() 中得到一个空数组;
getData函数:
public async getData(user: any): Promise<any>
this._url = 'http://localhost:5000/account/data';
const data = this._http.post<any>(this._url, user).toPromise();
return data
ngOnInit:
ngOnInit(): void
this._account.getData(this.login)
.then((data: any) =>
console.log(data)
);
result = [ ];
【问题讨论】:
【参考方案1】:试试这个(只是将 await 添加到您的 http 调用中):
public async getData(user: any): Promise
this._url = 'http://localhost:5000/account/data';
const data = await this._http.post<any>(this._url, user).toPromise();
return data
ngOnInit(): void
this._account.getData(this.login)
.then((data: any) =>
console.log(data)
);
EXTRA:使用 angular http 模块的更好方法是 OBSERVABLE 方式:
import Observable from 'rxjs';
public getData(user: any): Observable<any>
this._url = 'http://localhost:5000/account/data';
return this._http.post<any>(this._url, user);
ngOnInit(): void
this._account.getData(this.login)
.subscribe((data: any) =>
console.log(data)
);
【讨论】:
以上是关于如何返回 Promise 并从中获取数据? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
将 fetch 包装在 Promise 中有啥好处? [复制]
如何返回 Promise.all 获取 api json 数据?
使用 Node.Js 和 Promises,你如何返回一个已经实现的 Promise? [复制]
使用 Node.Js 和 Promises,你如何返回一个已经实现的 Promise? [复制]