我有一個(gè)執(zhí)行承諾并等待響應(yīng)的do..while循環(huán)。當(dāng)響應(yīng)為“正在處理”或“已接收”時(shí),循環(huán)需要繼續(xù)。但是,Promise中有一個(gè)setTimeout函數(shù)。這里的目標(biāo)是respo = await promise1.then(resp => resp)在do..while循環(huán)的“ do”語(yǔ)句中的函數(shù)2秒鐘后才被調(diào)用。這僅僅是為了允許我正在使用的API完成其工作。當(dāng)前發(fā)生的情況是setTimeout被調(diào)用一次,并且循環(huán)幾乎立即立即重復(fù)相同的響應(yīng),這表明2秒鐘的中斷不起作用。我究竟做錯(cuò)了什么?const promise1 = new Promise(function (resolve, reject) { setTimeout(function () { resolve(tasks(resStatus.data.task.id, tokenTenant)) }, 2000);})do { respo = await promise1 console.log(respo.data)} while (respo.data.status === "Processing" || respo.data.status === "Received");。。。對(duì)于好奇者的一些示例響應(yīng)(已解決問(wèn)題):ALL SYSTEMS GO!{ id: 'd23b2cf3-02c3-48fe-9479-1407238d41d9', status: 'Received', result: null, tenant_id: 'eaa55f40-93fa', creation_time: '2019-04-25T18:19:47+0000' }****...some results omitted for brievety...****{ id: 'd23b2cf3-02c3-48fe-9479-1407238d41d9', status: 'Processing', result: null, tenant_id: 'eaa55f40-93fa', creation_time: '2019-04-25T18:19:47+0000' }{ id: 'd23b2cf3-02c3-48fe-9479-1407238d41d9', status: 'Failed', result: { Reason: '[Errno 22] Invalid argument' }, tenant_id: 'eaa55f40-93fa', creation_time: '2019-04-25T18:19:47+0000' }
為什么我的do..while循環(huán)無(wú)法在async-await代碼內(nèi)正確執(zhí)行setTimeout?
慕哥6287543
2021-04-28 08:30:12