使用Await 進行非同步回調處理
在某些情況下,使用回呼時,例如:
test() { api.on( 'someEvent', function( response ) { return response; }); }
您可能需要合併非同步性。要讓這個函數非同步並使用await,首先必須確保回呼函數(someEvent)回傳一個Promise。這是因為非同步函數依賴Promises來完成非同步操作。
api.on()的修訂版本:
function apiOn(event) { return new Promise(resolve => { api.on(event, response => resolve(response)); }); }
使用此更新的函數,您現在可以將 test() 修改為非同步函數:
async function test() { return await apiOn( 'someEvent' ); }
但是,非同步函數也會傳回 Promise,因此 test() 的實際結果值是一個可以在另一個非同步函數中解析的 Promise:
async function whatever() { // snip const response = await test(); // use response here // snip }
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3