// 1.async 函数返回一个 Promise 对象,可以使用 then 方法添加回调函数。
async function helloAsync(){
return "helloAsync函数";
};
console.log(helloAsync()); // Promise {<fulfilled>: "helloAsync函数"
helloAsync().then(v=>{
console.log(v); // helloAsync函数
});
// 2.async 函数执行时,如果遇到 await 就会先暂停执行 ,
// 等到触发的异步操作完成后,恢复async 函数的执行并返回解析值。
// await 关键字仅在 async function 中有效。
// 如果在 async function 函数体外使用 await ,你只会得到一个语法错误。
// await 操作符用于等待一个 Promise 对象, 它只能在异步函数 async function 内部使用
function testAwait(){
return new Promise((resolve) => {
setTimeout(function(){
console.log("testAwait");
resolve();
}, 1000);
});
}
// async function helloAsync(){
// await testAwait();
// console.log("helloAsync");
// }
// helloAsync();
// // testAwait // 延时器执行结束
// // helloAsync
async function helloAsync2(){
testAwait();
console.log("helloAsync2");
}
helloAsync2();
// helloAsync2 // 延时器还没执行
// testAwait
// 3.语法 pms = await expression;
// expression: 一个 Promise 对象或者任何要等待的值。
// 返回 Promise 对象的处理结果。如果等待的不是 Promise 对象,则返回该值本身。
// 如果一个 Promise 被传递给一个 await 操作符,await 将等待 Promise 正常处理完成并返回其处理结果
function testAwait (x) {
return new Promise(resolve => {
setTimeout(() => {
resolve(x);
}, 2000);
});
}
async function helloAsync() {
var y = await testAwait ("hello world");
console.log(y);
console.log("字符z");
}
helloAsync ();
// hello world //延时进行打印
// 字符z