隐藏异步等待

时间:2017-08-24 12:13:35

标签: javascript asynchronous

有谁知道如何在函数中隐藏异步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 个答案:

答案 0 :(得分:1)

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

答案是否定的,需要通过await或其他方式.then()明确处理异步操作。你绝对可以在没有await.then()的情况下调用异步函数,但执行将等待操作完成,它会立即继续到下一行。

了解异步操作在JavaScript中至关重要,因为它们始终存在。它们不能被忽略并被视为同步函数。使用await尽可能接近,并且很多比以前使用回调地狱或.then()更清洁。