js中async/await的理解
文章类型:Javascript
发布者:hp
发布时间:2025-02-11
在开发过程中,async/await尤其是在接口请求时候,使用频繁,那么,他们的作用是?
(1):async/await本质上是Generator 的语法糖
(2):它能实现的效果都可以通过then实现,为了优化then而出现
(3):async是“异步”的简写,await则为等待,所以async 用于申明一个 function 是异步的,而 await 用于等待一个异步方法执行完成
async function testAsy(){
return 'hello world';
}
let result = testAsy();
console.log(result)
function getResult(num) {
return 'hello world';
}
async function testResult() {
let result = await getResult(2);
console.log(result);
}
async function testAsy(){
return 'hello world'
}
let result = testAsy()
console.log(result)
result.then(v=>{
console.log(v) // hello world
})
async 函数返回的是一个 Promise 对象,如果返回直接量,将通过Promise.resolve() 封装成 Promise 对象
async 函数返回的是一个 Promise 对象,所以在最外层不能用 await 获取其返回值的情况下,用then() 链来处理这个 Promise 对象
(1):await 意思是 async/wait(异步等待)。这个关键字只能在使用async定义的函数里面使用
(2):async 函数都会默认返回 promise,并且这个 promise 解析的值都将会是这个函数的返回值,而async 函数必须等到内部所有的 await 命令的 Promise 对象执行完,才会发生状态改变。
1:会返回 Promise.resolve(undefined)。
2: Promise 的特点——无等待,
3:在没有 await 的情况下执行 async 函数,它会立即执行,返回一个 Promise 对象,绝不会阻塞后面的语句。