隐藏异步等待
问题描述:
有没有人知道如何隐藏功能内的异步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();
答
如果我理解你的要求,你想知道是否有可能做一个函数调用的异步操作,而不在它前面使用await
关键字,并且仍然等到该呼叫完成后才转到下一行。
答案是否定的,需要显式地处理,无论是通过await
或类似.then()
其他方式异步操作。你绝对可以调用异步函数而不需要await
或.then()
,但执行的时候不是等待操作完成,它会立即继续下一行。
了解异步操作对于JavaScript来说非常重要,因为它们始终存在。它们不能被忽略,并被视为同步功能。使用await
是尽可能接近你可以得到,并且是很多比它曾经与回拨地狱或.then()
更清洁。
你是什么意思隐藏?你以后有什么预期的结果。你已经错过了'someSome.hideAsync();'这是故意的? – Keith