隐藏异步等待

隐藏异步等待

问题描述:

有没有人知道如何隐藏功能内的异步await隐藏异步等待


编辑,因为它似乎我不清楚。

我想要做的是包装一个函数内部的await,所以主要的外部函数不会像一个异步代码: asyncFunction:一个异步函数。 hideAsync:一个包装函数,它将删除从主代码中添加“await”关键字的需要。 运行:看起来像线性函数的主代码。

希望这一次自己清楚: -/

var someSome = {}; 
 

 
someSome.wait = ms => new Promise(resolve => setTimeout(resolve, ms)); 
 

 
someSome.asyncFunction = async (el) => { 
 
    await someSome.wait(1000); 
 
    alert("step 1"); 
 
} 
 

 
someSome.hideAsync = async function(){ 
 
    await someSome.asyncFunction(); 
 
    alert("step 2"); 
 
} 
 

 
someSome.run = async function(){ 
 
    someSome.hideAsync(); 
 
    alert("step 3"); 
 
} 
 
someSome.run();

+1

你是什么意思隐藏?你以后有什么预期的结果。你已经错过了'someSome.hideAsync();'这是故意的? – Keith

如果我理解你的要求,你想知道是否有可能做一个函数调用的异步操作,而不在它前面使用await关键字,并且仍然等到该呼叫完成后才转到下一行

答案是否定的,需要显式地处理,无论是通过await或类似.then()其他方式异步操作。你绝对可以调用异步函数而不需要await.then(),但执行的时候不是等待操作完成,它会立即继续下一行。

了解异步操作对于JavaScript来说非常重要,因为它们始终存在。它们不能被忽略,并被视为同步功能。使用await是尽可能接近你可以得到,并且是很多比它曾经与回拨地狱或.then()更清洁。