拿到JS异步函数返回值的几种方式 您所在的位置:网站首页 js如何拿到函数的返回值 拿到JS异步函数返回值的几种方式

拿到JS异步函数返回值的几种方式

2024-07-09 13:38| 来源: 网络整理| 查看: 265

在我们的编码过程中,为了满足业务需求,经常需要获取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); })


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有