📅  最后修改于: 2023-12-03 15:13:04.480000             🧑  作者: Mango
在JavaScript异步编程中,.then()
和async/await
是两个最基本和最重要的关键词。.then()
函数用于回调函数的调用和异步操作的结果处理。async/await
关键词则是ES8新增的语法,使得异步操作的代码更简单和更易读。
.then()
函数是一个非阻塞函数,它接受一个参数 - 回调函数。当一个异步操作完成后,会调用回调函数,并且将异步操作的结果传递给回调函数。.then()
链式调用非常常见,它的传递性可以让我们像"水管"一样,从一个函数水管流入另一个函数的水管。这个设计思想是很简单的:将处理分离开,使得程序更加的易读和代码更少出现嵌套式函数。
下面是一个使用.then()
函数的例子:
fetch('https://jsonplaceholder.typicode.com/todos/1')
.then(response => response.json())
.then(json => console.log(json))
.catch(error => console.error(error))
上面的代码中,fetch函数是一个异步的API调用,返回Promise对象。.then()
函数将处理Promise对象,并使用两个回调函数来处理Promise的结果。
async/await
是Promise
的语法糖,它进一步简化了Promise的风格和语法。
下面是使用async/await
给相同的API实现相同的功能的代码:
async function getJSON() {
try {
const response = await fetch('https://jsonplaceholder.typicode.com/todos/1')
const json = await response.json()
console.log(json)
} catch(error) {
console.error(error)
}
}
getJSON()
从上面的代码可以看出,使用async/await
可以使得异步编程更加的直观,易读和理解。
.then()
函数和async/await
都是异步编程中必不可少的关键词,这两种方式在处理异步操作时非常有用和有效。但是,对于不同场景和不同的异步操作,我们应该选择不同的编程模型。感谢使用.then()
和async/await
,我们可以在JavaScript中轻松处理异步操作。