需求:我想创建一个变量,他的值是一个openid, openid 从 getOpenid (封装的一个异步方法) 里面返回,通常调用 getOpenid ,会返回一个Promise 对象,.then 之后才能得到值,例如:

//模拟一个异步方法
function myPromise () {return  new Promise(function(resolve, reject) {setTimeout(function() {resolve("myPromise的resolve执行完毕!"); //代码正常执行!}, 5000);});
}//获取异步方法的值
myPromise().then(res=>{var a = res
})

使用 Promise 的话,需要在 .then 里面的函数才能取到值,很明显这有点累赘。那我们来优化一下吧。

优化方案很简单,就是利用 async await 语法糖。

async getOpenid() {if (wx.getStorageSync('openid')) {return wx.getStorageSync('openid');} else {return (await wx.cloud.callFunction({name: "openId"})).result.openid;}},async onLaunch() {this.openid = await this.getOpenid()console.log('this.openid', this.openid)}

getOpenid 是云函数请求,它是一个异步方法,返回openid字符串。把方法加上 async ,利用await 取值,是不是很方便?

之后取值,直接 this.openid 就可以拿到 openid 了,不再需要 this.openid().then(res=>res) , 舒服了!!

方法 retrun 异步的值,创建一个变量直接等于一个异步方法返回的值相关推荐

  1.  定义一个变量,是一个三位数,求各个位数的和

     ** 定义一个变量,是一个三位数,求各个位数的和 ** int s = 198;int ge = s%10;int shi=s/10%10;int bai = s/100;int sum= ge+ ...

  2. mysql中avg函数如果有空值_对于 AVG 函数,如果列中所有行的值都是 null,那么 AVG 函数返回的值是( )...

    [判断题]偶联剂是具有某些特定基团的化合物,它能通过化学和物理的作用将两种性质差异很大,原本不易结合的材料较牢固地结合起来 [多选题]滑石粉的片状结构使得滑石粉填充塑料的某些性能得到较大的改善,可提高 ...

  3. 【Groovy】Groovy 方法调用 ( 使用闭包创建接口对象 | 接口中有一个函数 | 接口中有多个函数 )

    文章目录 一.使用闭包创建接口对象 ( 接口中有一个函数 ) 二.使用闭包创建接口对象 ( 接口中有多个函数 ) 三.完整代码示例 一.使用闭包创建接口对象 ( 接口中有一个函数 ) 在 Groovy ...

  4. 调用 usb_control_msg 返回错误值 -32, Broken pipe, 对 hidraw write时 返回错误值 -32, Broken pipe

    -------------------Step 1--------------------- 如题,使用 libusb 对 hid 类设备进行控制传输的时候,有时会遇到此错误,但是实际上传输是成功的, ...

  5. 【浏览器】缩放是缩放CSS像素(缩放比例为1时,一个CSS像素等于一个屏幕像素)

    At zoom level 100% one CSS pixel is exactly equal to one device pixel

  6. php 如何初始化变量的值,php中变量初始化和赋值方法

    php中变量初始化和赋值方法 发布时间:2020-05-21 23:07:12 来源:亿速云 阅读:125 作者:鸽子 什么是变量 通俗的来说变量是一种容器.根据变量类型不同,容器的大小不一样,自然能 ...

  7. python3判断变量存在_Python3基础 list in/not in 判断一个变量是否在列表中存在

    Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda : 4.5.11 typesetting : Markdown ...

  8. HTML学习9 JS 数字和字符串 变量的类型 运算符和表达式 布尔值和关系运算符、逻辑运算符

    JavaScript简介 1.1 JavaScript的用途 JavaScript用来制作web页面交互效果,提升用户体验. 简单列出几个JavaScript能够制作的页面效果,它能干什么: 轮播图 ...

  9. eclipse新建一个java_Eclipse中新建一个java源文件的步骤

    [简答题]请根据第六次讨论题目进行讨论.并将你的讨论回答的ppt传到此处. [简答题]P152页,习题9 一.二(2,3).请将回答的word文档上传到此处. [简答题]第五次讨论:讨论题目参见课程网 ...

最新文章

  1. 网络数据采集与python爬虫_高校邦网络数据采集与Python爬虫答案
  2. 简要描述cookie和session的区别:
  3. 计算c53的c语言的程序,C程序设计的常用算法.doc
  4. matlab 画图比例缩小图片大小,Matlab 画图字体,字号的设定,图片大小和比例
  5. PUSHA/PUSHAD POPA/POPAD 指令详解
  6. python200行代码_如何用200行Python代码“换脸”
  7. 浅谈.Net异步编程的前世今生----EAP篇
  8. CMake 使用方法
  9. 全国计算机二级公共知识点,全国计算机二级公共基础知识知识点
  10. 每日一题(易错):这条SQL语句,有什么作用?
  11. [原创]物探小宽线坐标快速生成(平行线坐标互算 、点到线距离计算、两线交点计算等)...
  12. apt-get pip3
  13. windows本地script脚本恶意代码分析(带注释)
  14. 【BottomBar】Android炫酷的底部切换
  15. 怎样批量更改文件夹里的文件名称?
  16. 中文数字转阿拉伯数字
  17. Meta-Tracker(ECCV 2018)视频目标跟踪源码运行笔记——Testing模式
  18. andorid 源码北京公交线路查询(离线)
  19. 基于Java毕业设计智创员工管理系统源码+系统+mysql+lw文档+部署软件
  20. 薄冰-英语语法[1]-名词的格 (易混知识)

热门文章

  1. MySQL更新命令_UPDATE
  2. EF 调试跟踪生成的SQL语句
  3. 16年10月18号2th运算符与流程结构
  4. Tiny4412 Uboot
  5. Class中isAssignableFrom() 方法
  6. Sourse Insight使用教程及常见的问题解决办法
  7. 『转载』Debussy快速上手(Verdi相似)
  8. sql server面试题
  9. Linux 命令集锦
  10. 可以弹出确认对话框的自定义Web服务器控件ConfirmButton