async
async字面理解是异步,如果要真正理解async,需要明白promise的概念。promise类似一个承诺,比如小王对老王承诺周三之前把需求搞定,有了这个承诺,这个承诺有两种可能,所以老王就制订了两个方案:
1. 小王没搞定,即reject,那么老王就再给一天时间。
2. 小王搞定了,即resolve,那么交给测试进行测试。
3. 以防万一,老王多留了个心眼,那就是这个老板临时决定暂停这个项目,即catch(error)。
其实从技术层面上说,这些就是一个异步函数注册回调,只是这种方式更简单直观。
async在RN中,来标识函数为异步函数,即函数实现中有耗时操作。async函数会返回一个promise,有了promise,当然就可以为所欲为
了。即:then(()=>{}) ,一般常见用法会与await共用。
await
await必须在async修饰的函数中使用,标识修饰语句存在耗时操作,当线程执行到await所在行时,类似jav等待异步返回。等待的过程会一直阻塞在await所在行,直到拿到返回值。
- 举例