作用:
将异步转为同步,其实有点语法糖,promise能实现的改为比较同步的方式表现。
用法:
两个关键字:
async:放在函数声明前,用于表示这个函数含有异步过程,且此函数必定返回promise对象
await:只能用于async声明了的函数里,如果await的对象是个promise,则等待其返回(这是同步的关键),如果是普通函数则没用
例子:
function selectAll() { return new Promise((resolve, reject) => { connection.query('SELECT * from table1;', function (error, results) { if (error) throw error; resolve(results[0]); }); }); } async function test() { let ret = await selectAll(); }
其中selectAll函数返回一个promise对象,而test中的ret将取得查询结果而不是一个promise对象!
如果没有用await,需要用then取得对象,现在直接取得。
捕获错误
而关于错误,如果promise中抛出错误,需要在await外用try...catch接。