uni-app中,async 和 await 在干什么?

早期的async与await关键字并不是出自js的,它们最早出现在 C# 5.0 的语法中。

从字面意思来理解。async 是“异步”的简写,而 await 是等待的意思。

所以放在代码里,如果两个一起用,则意思是“等待一个异步的方法完成”。

看以下代码:

function getSomething() {
    return "something";
}

async function testAsync() {
    return Promise.resolve("hello async");
}

async function test() {
    const v1 = await getSomething();
    const v2 = await testAsync();
    console.log(v1, v2);
}

test();

它会输出:

something

hello async

虽然它他的方法是异步的,但加上await后修饰后,它就会阻塞后面的代码执行,直到被调用的方法返回结果。

注:以上代码段引用 https://segmentfault.com/a/1190000007535316。更详细的解说,也可以访部上面网扯。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
uni-app 使用 async/await 主要有以下几个步骤: 1. 将需要异步处理的函数改为 async 函数,并在其使用 await 关键字等待异步操作完成。 2. 在调用 async 函数的地方使用 try/catch 块处理可能出现的异常。 下面是一个使用 async/await 的例子: ```javascript // 定义一个异步函数 async function getData() { const res = await uni.request({ url: 'https://some-api.com/data', method: 'GET' }); if (res[0]) { return res[1]; } else { throw new Error('请求失败'); } } // 在调用 getData 的地方使用 try/catch 块处理可能出现的异常 try { const data = await getData(); console.log(data); } catch (err) { console.error(err); } ``` 在上面的代码,`getData` 函数使用了 `await` 等待 `uni.request` 异步操作完成。在使用 `getData` 函数时,我们使用了 try/catch 块来处理可能出现的异常。 需要注意的是,`async` 函数返回的是一个 `Promise` 对象,因此,在使用 `async` 函数时,我们可以将其返回值赋值给一个变量,并使用 `then` 方法获取异步操作的结果,如下所示: ```javascript async function getData() { const res = await uni.request({ url: 'https://some-api.com/data', method: 'GET' }); if (res[0]) { return res[1]; } else { throw new Error('请求失败'); } } getData().then(data => { console.log(data); }).catch(err => { console.error(err); }); ``` 上面的代码,我们使用 `then` 方法获取 `getData` 函数的异步结果,并使用 `catch` 方法处理异常。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值