1 回答

TA貢獻1827條經驗 獲得超4個贊
async function test1(){
const p = await new Promise(resolve => setTimeout(resolve, 2000)).then(()=>'test1');
console.log('Completed test1');
return p;
}
我認為您尚未完全理解此代碼。setTimeout不是捷徑。new Promise(resolve => setTimeout(resolve, 2000))用于創(chuàng)建一個承諾,該承諾將在2000毫秒后解決。您可以將其視為API調用,它將在2000毫秒后調用回調
讓我們打破這段代碼:
// A function test1 which is defined async sow you can use await inside it
async function test1(){
// You can await for promises.
// As explained await new Promise(resolve => setTimeout(resolve, 2000))
// is just a promise resolving after 2000ms
const p = await new Promise(resolve => setTimeout(resolve, 2000))
// .then block will run after promise gets resolved
// p will bcome test1
.then(()=>'test1');
console.log('Completed test1');
return p;
}
如果您想有條件地解決Promise并進行一些計算,則可以在setTimeout函數中進行以下操作:
await new Promise(resolve =>
setTimeout(()=>{
if('Some consition'){
resolve('some value')
}
else{
resolve('some other value')
}
}, 2000)
)
添加回答
舉報