DMOZ中文网站分类目录-免费收录各类优秀网站的中文网站目录.
  • DmozDir.org
DMOZ目录快速登录入口-免费收录各类优秀网站的中文网站目录.由人工编辑,并提供网站分类目录检索及地区分类目录检索,是站长免费推广网站的有力平台!

对JavaScript Promise/async/await的一些理解2

  • 对JavaScript Promise/async/await的一些理解2

  • 已被浏览: 37 次2020年09月28日    来源:  https://blog.csdn.net/makefish/article/details/108828431
  • 在http://jsfiddle.net/ 下面这段js可以正常输出一个图片fetch( http://fiddle.jshell.net/img/logo.png ).then(response response.blob()).

    在http://jsfiddle.net/,下面这段js可以正常输出一个图片:

    fetch('Up/2020/09/28/jia4cwozbun.png')
    .then(response => response.blob())
    .then(myBlob => {
      let objectURL = URL.createObjectURL(myBlob);
      let image = document.createElement('img');
      image.src = objectURL;
      document.body.appendChild(image);
    })
    .catch(e => {
      console.log('There has been a problem with your fetch operation: ' + e.message);
    });
    

    将Promise修改成await async,结果也是可以的:

    async function myFetch() {
      let response = await fetch('Up/2020/09/28/jia4cwozbun.png');
      let myBlob = await response.blob();
    
      let objectURL = URL.createObjectURL(myBlob);
      let image = document.createElement('img');
      image.src = objectURL;
      document.body.appendChild(image);
    }
    myFetch()
    .catch(e => {
      console.log('There has been a problem with your fetch operation: ' + e.message);
    });
    

    这样写会报错,原因是myfetch返回的是一个Promise:

    async function myFetch() {
      let response = await fetch('Up/2020/09/28/jia4cwozbun.png');
      let myBlob = await response.blob();
      return  myBlob;
    }
    const myBlob = myFetch();
    console.log(myBlob);
    let objectURL = URL.createObjectURL(myBlob);
    let image = document.createElement('img');
    image.src = objectURL;
    document.body.appendChild(image);
    

    所以要这样加一次await:

    async function myFetch() {
      let response = await fetch('Up/2020/09/28/jia4cwozbun.png');
      let myBlob = await response.blob();
      return  myBlob;
    }
    
    async function main() {
      const myBlob =await myFetch();
      console.log(myBlob);
      let objectURL = URL.createObjectURL(myBlob);
      let image = document.createElement('img');
      image.src = objectURL;
      document.body.appendChild(image);
    }
    
    main();
    

    以上信息来源于网络,如有侵权,请联系站长删除。

    TAG:promise JavaScript AWAIT

  • 上一篇:鸿蒙初体验(三):使用JS FA应用写一个简单的猜数字游戏
  • 与“对JavaScript Promise/async/await的一些理解2”相关的资讯
  • JavaScript 内存详解 & 分析指南
  • 5 JavaScript工具在2021年出发
  • Sentry(v20.12.1) K8S 云原生架构探索,SENTRY FOR JAVASCRIPT SDK 配置详解
  • HaaS600 Kit的JavaScript轻应用开发配置
  • Promise入门到精通(初级篇)-附代码详细讲解