首页 > 其他 > 详细

await/async基础知识

时间:2021-06-16 00:10:14      阅读:27      评论:0      收藏:0      [点我收藏+]

关于await

  • await必须在async function内使用,而async function不一定要有await语句
  • await等待的结果总是promise的处理结果值,而不是promise。
  • await会导致async function内部的后续代码阻塞(因为这个function执行到await时会等待返回值直到成功),而浏览器则会继续去执行function外的其他代码
async function np(){
    var p=await Promise.resolve(‘good2‘)
    console.log(p); //good2
    return p
}

var np1=np();
console.log(np1); //Promise {<pending>}

//以上代码执行结果是Promise {<pending>}和good2

关于async

  • async function始终会返回一个新的promise对象,这种语法存在的意义就是为了更方便的编写异步程序
  • async function的return大有讲究: 如果你想返回一个确定值,则return语句实际返回的是一个fulfilled了的promise,如果你想返回一个自己的promise,return不会如你所愿,它会给你生成一个全新的pending状态的promise(结果是你的promise的结果)
async function np(){
    var p=Promise.resolve(‘good2‘)
    console.log(p); //Promise {<fulfilled>: "good2"}
    return p
}

async function np2(){
    return 2
}

console.log(np()); //Promise {<pending>}
console.log(np2()); //Promise {<fulfilled>: 2}

简单验证一下

var p=Promise.resolve(‘good2‘)

async function np(){
    return p
}

function np2(){
    return p
}

console.log(np()==p); //false
console.log(np2()==p); //true

await/async基础知识

原文:https://www.cnblogs.com/exkaede/p/14886495.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!