Typescript 即使使用async/await方法,承诺仍挂起
我有一个服务类,它有一个从api获取数据的方法:Typescript 即使使用async/await方法,承诺仍挂起,typescript,promise,async-await,Typescript,Promise,Async Await,我有一个服务类,它有一个从api获取数据的方法: class TenderTableService{ fetchOngoingTenders = async () => { const response = await fetch('http://127.0.0.1:5000/api/tender/'); let tenderList: Array<Tender> = (JSON).parse(await response.jso
class TenderTableService{
fetchOngoingTenders = async () => {
const response = await fetch('http://127.0.0.1:5000/api/tender/');
let tenderList: Array<Tender> = (JSON).parse(await response.json());
return tenderList;
};
}
export default TenderTableService;
classtenderTableService{
fetchOngoingTenders=async()=>{
const response=等待获取('http://127.0.0.1:5000/api/tender/');
让tenderList:Array=(JSON).parse(wait response.JSON());
返回投标清单;
};
}
导出默认表服务;
此类方法从另一个文件中使用,如下所示:
const tenderTableService : TenderTableService = new TenderTableService();
const tenderList= tenderTableService.fetchOngoingTenders();
console.log(tenderList); // -> Promise { <state>: "pending" }
const tenderTableService:tenderTableService=new tenderTableService();
const tenderList=tenderTableService.fetchOngoingTenders();
console.log(投标清单);//->承诺{:“待定”}
我不知道如何防止变量表单返回挂起状态,这是因为
tenderTableService.fetchOngoingTenders()代码>返回一个承诺,因为它实际上是一个异步函数。如果您想访问投标清单,可以通过链接。然后()
到投标清单,即:
const tenderTableService : TenderTableService = new TenderTableService();
tenderTableService.fetchOngoingTenders().then((tenderList) => {
// Do something with tenderList here
});
…这意味着所有处理tenderList
值的逻辑都需要包装在回调中。如果上面的代码也包装在函数中,则可以将其转换为异步函数并使用wait:
async function yourFunction() {
const tenderTableService : TenderTableService = new TenderTableService();
const tenderList = await tenderTableService.fetchOngoingTenders();
// Do something with tenderList here
}