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

不言
Lepaskan: 2019-01-10 16:47:15
asal
2448 orang telah melayarinya

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)
})
Salin selepas log masuk

在某些情况下,使用Promise.all()可以更好的实现,但仍然必须使用then。

我们如果学习了如何使用async/await,这样就可以提高效率了。

如何使用async/await?

我们先来看一下基本的语法

async可以定义一个函数,只需在function之前写入就可以执行异步处理。

async function() { }
Salin selepas log masuk

如果这样写async,这个函数将返回Promise。

此外,await是Promise处理的结果返回之前暂时停止的运算符。

await Promise处理
Salin selepas log masuk

通过在描述Promise处理的函数之前简单地写await,它会暂停直到结果返回。

但是,请注意await只能用于async中定义的函数!

同样由于这个原因,async / await经常会成对的使用。

如何使用async/await编写异步处理?

首先,假设有以下Promise处理。

function myPromise(num) {
  return new Promise(function(resolve) {
 
    setTimeout(function() { resolve(num * num) }, 3000)
 
  })
}
Salin selepas log masuk

这个例子,明白在Promise内记述着故意花费3秒的时间的处理。

如果使用async/await而不使用then ,则如下所示。

async function myAsync() {
    var result = await myPromise(10);
    console.log(result);
}
Salin selepas log masuk

执行结果为: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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!