React开发(273):异步调用的方式

Posted 前端小歌谣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React开发(273):异步调用的方式相关的知识,希望对你有一定的参考价值。

1、回调函数方式

doFirstThing((err, data) => 
    if (err) 
        console.log(err);
        return;
    
    doSecondThing(data, function(err, data)
        if (err) 
            console.log(err);
            return;
        
        doThirdThing(data, function(err, data)
            if (err) 
                console.log(err);
                return;
            
        )
    )
)

2、Promise 方式

function takeLongTime(n) 
    return new Promise(resolve => 
        setTimeout(() => 
            resolve(n + 200)
        ,)
    )
    

function doThing (n) 
    return takeLongTime(n);

const time1 = 200;
doThing(time1)
.then(time2 => doThing(time2))
.then(time3 => doThing(time3))
.catch(err => 
    console.log(err)
)
复制代码

上面的代码每次异步调用递进200ms,并把下次需要延迟的时间传给下个异步函数

3、async & await

async function doThings () 
    try 
        const data1 =  await doThing(200);
        const data2 = await doThing(data1);
        const data3 = await doThing(data2);
     catch (err => 
        console.log(err)
    ) 
    


 

以上是关于React开发(273):异步调用的方式的主要内容,如果未能解决你的问题,请参考以下文章

.then 异步函数中的 React-Native 调用函数

从片段中调用分离的异步任务类

从273二手车的M站点初探js模块化编程

如何使 Javascript/React/Typescript 获取调用异步?

React Jest:如何模拟返回数据的异步 API 调用?

如何在 React 的 UseEffect() 中调用异步函数?