ES7 async await
async/await
ES7语法糖,基于Promise,处理异步任务更加方便
async
函数的返回值为promise对象,promise对象的结果由async函数执行的返回值决定
/* async: async不一定需要await,但是await一定需要async 加了async之后,函数的执行结果默认返回一个Promise对象 */ async function f1() { return 1 } // console.log(f1())//Promise?{<resolved>: 1} //产生一个失败的promise async function f2() { // throw 1; return Promise.reject(2) } // console.log(f2()) //Promise?{<rejected>: 1}
await
右侧的表达式一般为promise对象,但也可以是其他的值
如果表达式是promise对象,那么返回的是promise成功的值
如果是其他的值,直接将此值作为await的返回值
如果await的promise失败了,就会抛出异常,需要进行try catch处理,同时通过trycatch可以获取失败的promise的值
/* await await必须和async连用 await右侧表达式为promise,得到的结果就是promise成功的value await右侧表达式不是promise,得到的结果就是值本身 await只能得到成功的结果,如果想要得到失败的结果,只能用trycatch */ async function fn3() { try { return await Promise.reject(2); } catch (error) { console.log(error)//2 } } console.log(fn3()) /* Promise {<pending>} [[PromiseStatus]]: "rejected" [[PromiseValue]]: 2 */
相关推荐
陈旭阳 2020-06-02
前端开发Kingcean 2020-05-29
Magicsoftware 2020-03-28
前端开发Kingcean 2020-01-23
Trustport 2019-12-16
85403263 2019-07-01
Bonrui编程路 2020-06-07
niehanmin 2020-05-19
Magicsoftware 2020-03-28
LorenLiu 2020-03-28
lyg0 2020-02-18
88520191 2020-01-30
csuzxm000 2020-01-10
whynotgonow 2020-01-05
89500297 2020-01-03
88520191 2019-12-30
wujiajax 2014-01-13