码迷,mamicode.com
首页 > 其他好文 > 详细

04async await

时间:2020-06-26 22:32:13      阅读:56      评论:0      收藏:0      [点我收藏+]

标签:UNC   throw   ken   const   key   syn   pre   一个   return   

async

async 函数返回值是一个promise对象,promise对象的状态由async函数的返回值决定
 
//函数的三种定义
async function hello() { return "Hello" };
let hello = async function() { return "Hello" };
let hello = async () => { return "Hello" };

//使用
hello().then((value) => console.log(value))
hello().then(console.log) //简写

async函数返回值决定了返回的promise的状态

async function fn() {
  //  throw 1 走catch
  //  return Promise.reject(1) 走catch
   
  return 2 //走then
  return Promise.resolve(2) //走then
  return undefined  //默认返回 走then
} 

await 

await  操作符用于等待一个Promise 对象。它只能在异步函数 async function 中使用。
[return_value] = await expression;
expression 表示一个 Promise 对象或者任何要等待的值。
返回值:返回 Promise 对象成功的value。如果等待的不是 Promise 对象,则返回该值本身
function fn3() {
  return Promise.resolve(3)
}


const fn4 = async () => {
  console.log(1); //第一步
  const res = await fn3() //await右边是promise对象,得到的结果是promise成功的value值
  console.log(‘res: ‘, res); //第三步
}
let res=fn4()

console.log(2); //第二步


async function fn5(){
  const data=await 30 //await右边不是promise,得到的结果是塔本身,即右边的值
  console.log(‘data: ‘, data);//30

}
fn5()

 

try-catch

function fn3() {
  return Promise.reject(3)
}


const fn4 = async () => {
  console.log(1); //第一步
  try {
    const res = await fn3() //await右边是promise对象,得到的结果是promise成功的value值
    console.log(‘res: ‘, res); //第三步

  } catch (error) {
    console.log(‘error: ‘, error);//3 promise失败的状态值

  }

}
fn4()

 

 

04async await

标签:UNC   throw   ken   const   key   syn   pre   一个   return   

原文地址:https://www.cnblogs.com/xiaoliziaaa/p/13196276.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!