ES7提供了async函数
语法 async function name(param) { statements }
async 函数返回一个 Promise 对象,可以使用 then 方法添加回调函数。
async函数内部return语句返回的值,会成为then方法回调函数的参数。
async function foo(){
return "这是async函数的返回值";
}
console.log(foo()) // Promise { '这是async函数的返回值' }
foo().then((args)=>{ // 回调函数是箭头函数
console.log(args); // 这是async函数的返回值
})
await 操作符用于等待一个 Promise 对象,
它只能在异步函数 async function 内部使用。
function testAwait (x) {
return new Promise(resolve => {
setTimeout(() => {
resolve(x);
}, 2000);
});
}
async function foo() {
var x = await testAwait ("hello world");
console.log(x);
}
foo (); // hello world
async function f() {
return await 123;
}
f().then(v => console.log(v))
// 123
防止出错的方法,把await命令放在try...catch代码块中。
async function f() {
try {
await new Promise(function (resolve, reject) {
throw new Error('出错了');
});
} catch(e) {
}
return await('hello world');
}
原文:https://www.cnblogs.com/xuzhengguo/p/12088957.html