Async/await是一个主要功能,可以更简洁有效地描述Promise的异步处理,异步处理是无需等待处理结果就能马上执行下一个处理的机制,它可以很容易地通过使用Promise来实现。
在Promise的情况下,我们使用“then”来连接,因此它会变成很单调的代码。
例如,如果使用“then”运行多个Promise进程,它看起来像这样:
getDate() .then(function(data) { return getYear(data) }) .then(function(year) { return getSomething(year) }) .then(function(item) { getAnotherThing(item) })
在某些情况下,使用Promise.all()可以更好的实现,但仍然必须使用then。
我们如果学习了如何使用async/await,这样就可以提高效率了。
如何使用async/await?
我们先来看一下基本的语法
async可以定义一个函数,只需在function之前写入就可以执行异步处理。
async function() { }
如果这样写async,这个函数将返回Promise。
此外,await是Promise处理的结果返回之前暂时停止的运算符。
await Promise处理
通过在描述Promise处理的函数之前简单地写await,它会暂停直到结果返回。
但是,请注意await只能用于async中定义的函数!
同样由于这个原因,async / await经常会成对的使用。
如何使用async/await编写异步处理?
首先,假设有以下Promise处理。
function myPromise(num) { return new Promise(function(resolve) { setTimeout(function() { resolve(num * num) }, 3000) }) }
这个例子,明白在Promise内记述着故意花费3秒的时间的处理。
如果使用async/await而不使用then ,则如下所示。
async function myAsync() { var result = await myPromise(10); console.log(result); }
执行结果为:100
在这个例子中,通过赋予async来创建异步处理的函数。
描述函数内的Promise处理是myPromise()前的await
这将暂时等待Promise进程,该进程将在3秒后返回结果,并且一旦获得结果,函数内的进程将继续处理。
在执行结果中,可以获得给定参数10相乘的值100。
以上就是JavaScript中如何使用async和await执行异步处理的详细内容,更多请关注php中文网其它相关文章!
已抢65436个
抢已抢29826个
抢已抢16330个
抢已抢8258个
抢已抢10702个
抢已抢21785个
抢