问题
希望在一个函数执行完毕之后才去执行另外一个函数,如何解决?
关于async
async 其实就是promise的语法糖。函数前面必须加一个async,异步操作的方法前加一个await 关键字。顾名思义,就是让你等一下,执行完了再继续往下走。注意:await 只能在async函数中执行,否则会报错。
关于await
await
的意思就是等待。它后面可以跟一个表达式。如果是值(如字符串、数字、普通对象等等)的话,返回值就是本身的值。- 通常使用方式为在后面跟一个
promise
对象。await
会等待这个promise
的状态由pending
转为fulfilled
或者rejected
。在此期间它会阻塞,延迟执行await语句后面的语句。 - 如果
promise
对象的结果是resolve
,它会将resolve
的值,作为await
表达式的运算结果。
例子
对于一个操作(创建菜单),需要在获取到token之后利用token才能执行这个操作,那么对应代码如下:
//获取token
const getToken = async () => {
global.token=await new Promise((resolve) => {
setTimeout