在我们的编码过程中,为了满足业务需求,经常需要获取JS异步函数的返回值。今天就来汇总一下拿值的几种方式。
1,通过回调函数的方式来拿返回值,这个想必大家不会陌生

function getSomething(cb) {var r = 0;setTimeout(function() {r = 2;cb(r)//回调函数},10)
}
function compute(x) {alert(x * 2);
}
getSomething(compute);

2.通过promise的方式,这个之前有做过详细的介绍

function getSomething() {var r = 0;return new Promise(function(resolve) {setTimeout(function(){r = 2;resolve(r);},10)})
}
function compute(x) {alert(x * 2);
}
getSomething().then(compute);

3、通过async的方式

function getSomething() {var r = 0;return new Promise(function(resolve) {setTimeout(function() {r = 2;resolve(r);},10)})
}
async function compute() {var x = await getSomething();alert(x * 2);
}
compute();

4、通过generator方式实现

function getSomething() {var r = 0;setTimeout(function() {r = 2;it.next(r);},10);
}
function *compute(it) {var x = yield getSomething();alert(x * 2);
}
var it = compute();
it.next();
//同步的写法实现异步的逻辑

5.通过promise和generator相结合的方式

function getSomething() {var r = 0;return new Promise(function(resolve) {setTimeout(function() {r = 2;resolve(r);},10)})
}
function *compute() {var x = yield getSomething();alert(x * 2);
}
var it = compute();
it.next().value.then(function(value) {it.next(value);
})

拿到JS异步函数返回值的几种方式相关推荐

  1. 模板引擎不关心内容之——art-template,碰见的同步与fs.readFile异步以及函数回调问题的描述,针对fs的readfille读取文件时,返回不了异步函数返回值的解决方法

    模板引擎不关心内容 art-template art-template不仅可以在浏览器使用,也可以在node中使用 npm install art-template该命令在哪执行就会把包下载在哪里,默 ...

  2. No.002 关于Python函数返回值的三种情况

    关于Python函数返回值的三种情况,无返回值.有1个返回值,以及有多个返回值 # 本批次所有文章都是跟着马士兵的杨淑娟老师的视频教学所得,视频地址在下面: # https://www.bilibil ...

  3. python执行系统命令后获取返回值的几种方式集合

    第一种情况 os.system('ps aux') 执行系统命令,没有返回值 第二种情况 result = os.popen('ps aux') res = result.read() for lin ...

  4. js中函数返回值return

    全栈工程师开发手册 (作者:栾鹏) js系列教程4-函数.函数参数教程全解 函数返回值 1.所有函数都有返回值,没有return语句时,默认返回内容为undefined,和其他面向对象的编程语言一样, ...

  5. keil5函数 默认返回值_python实用技巧——获取部分返回值的4种方式

    喜欢编程,热爱分享,希望能结交更多志同道合的朋友,一起在学习Python的道路上走得更远! python的函数支持返回多个值.返回多个值时,默认以tuple的方式返回. 例如,下面两个函数的定义是完全 ...

  6. python执行cmd系统命令获取返回值的几种方式

    python 执行shell命令 注:python3.X模块中以废弃commands该模块,使用subprocess模块在本文下面增加解说 本篇介绍如何使用python在cmd上执行shell命令 用 ...

  7. IDEA自动补全返回值的三种方式

    一. 前言 平常在编码的过程中,可能需要调用第三方Api接口,这个过程中可能涉及到不太熟悉第三方Api接口的返回值类型,有可能是String.int.Object.void 等等这些,为了方便快速编码 ...

  8. html如何调用js的函数返回值,CDHtmlDialog实现调用html中js函数-江湖宵小-搜狐空间...

    2008-05-05 14:17 1.在APP的InitInstance()函数中加入AfxEnableControlContainer();以支持ole控件: 2.在CDHtmlDialog::On ...

  9. java 定时器返回值_javascript 函数返回值(return)、定时器(setTimeout、setInterval)...

    一.函数的返回值:return 1.函数名+括号=return后面的值 function fn1(){ return 100; } alert(fn1()); // 100 fn1()=return后 ...

最新文章

  1. ionic3使用@angular/http 访问nodejs(koa2框架)服务不能返回数据
  2. django学习(1)-----项目组成
  3. You must install 'msgfmt' on your build machine
  4. php原生session,利用Memcached在php下实现session机制 替换PHP的原生session支持
  5. 有多少游客被峨眉山的猴子亲过脸?
  6. vue element dialog 对话框
  7. linux版Nacos安装、集群配置
  8. java 视频上传_java实现大视频上传
  9. Maven 安装教程详解
  10. 三步删除U深度,老毛桃,大白菜捆绑软件!!
  11. 阿里巴巴达摩院视觉AI平台概述
  12. here-document at line 40 delimited by end-of-file (wanted `EOF‘)
  13. python 如何添加国内源_pip和conda添加国内清华镜像源(亲测有效)
  14. 电解电容和钽电容的区别是什么
  15. sql—labs通关
  16. 金蝶云星空对接打通旺店通·企业版采购入库查询接口与创建采购入库单接口
  17. 8 月 “图无处不在” 线上直播开始报名啦
  18. airpod蓝牙耳机音量大解决办法_关于AirPods的常见问题汇总 全面了解苹果AirPods无线耳机...
  19. 恢复服务器删除文件,恢复服务器删除文件夹
  20. 离散事件动态系统 #Petri网作业 #可达图 #赋时Petri

热门文章

  1. 移动设备网络代码,整理成GO结构体
  2. python面向对象:光学元件类的实现
  3. 【问】无法连接,用户‘sa’登陆失败
  4. 【Keras】keras流程简介
  5. 浅谈三轮全向移动平台之——运动学逆解
  6. 切换上下首音乐功能的实现(消息订阅与发布的使用)
  7. 若泽数据公开课-JVM01
  8. alv 导出料号缺少最后一位
  9. JavaScript核心知识总结(下)
  10. SEO搜索引擎优化-引擎排名