await 理解(day02)

await 操做符用于等待一个Promise 对象。它只能在异步函数 async function 中使用。

await 表达式会暂停当前 async function 的执行,等待 Promise 处理完成。
若 Promise 正常处理(fulfilled),其回调的resolve函数参数做为 await 表达式的值,继续执行 async function。
若 Promise 处理异常(rejected),await 表达式会把 Promise 的异常缘由抛出。
另外,若是 await 操做符后的表达式的值不是一个 Promise,则返回该值自己。

若是该值不是一个 Promise,await 会把该值转换为已正常处理的Promise,而后等待其处理结果。

async function f2() {
  var y = await 20;
  console.log(y); // 20
}
f2();

若是 Promise 处理异常,则异常值被抛出。

async function f3() {
  try {
    var z = await Promise.reject(30);
  } catch (e) {
    console.log(e); // 30
  }
}
f3();

reject 和 then ,catch问题

当咱们reject()一个东西的时候,咱们在then中函数的第二个参数中能够接收到reject的值,若是没有回调函数没有第二个参数,reject()的值能够用catch接受。可是resolve的值必定在then中接受。因为等网络出现的非逻辑问题只能在catch中接收。

相关文章
相关标签/搜索