Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 即使使用async/await方法,承诺仍挂起_Typescript_Promise_Async Await - Fatal编程技术网

Typescript 即使使用async/await方法,承诺仍挂起

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

我有一个服务类,它有一个从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.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
}