Rumah >hujung hadapan web >tutorial js >JavaScript中如何使用async和await执行异步处理

JavaScript中如何使用async和await执行异步处理

不言
不言asal
2019-01-10 16:47:152533semak imbas

Async/await是一个主要功能,可以更简洁有效地描述Promise的异步处理,异步处理是无需等待处理结果就能马上执行下一个处理的机制,它可以很容易地通过使用Promise来实现。

JavaScript中如何使用async和await执行异步处理

在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。

Atas ialah kandungan terperinci JavaScript中如何使用async和await执行异步处理. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn