添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议 》和 《 阿里云开发者社区知识产权保护指引 》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单 进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。 // await: 让 JavaScript 引擎等待直到 promise 完成(settle)并返回结果 // 比如获取异步函数(axios、ajax)中得到的值 async function test() { const name = getName(); const name1 = await getName(); // 仅允许在异步函数和模块顶级使用 "await" 表达式。 console.log(name); // Promise { 'John Doe' } console.log(name1); // John Doe const age = getAge(); const age1 = await getAge(); console.log(age); // Promise { 25 } console.log(age1); // 25 const pwd = getPwd(); const pwd1 = await getPwd(); console.log(pwd); // Promise { 123456 } console.log(pwd1); // 123456 test();
/******************使用回调函数 操作异步函数中获取的值********************************************************** */
function getName(callback) {
  setTimeout(() => {
    callback("John Doe");
  }, 2000);
getName(name => {
  console.log(name);
/*******************使用 promise 操作异步函数中获取的值********************************************************* */
function getAge() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve(18);
    }, 2000);
getAge()
  .then(age => {
    // 使用 promise 操作异步函数中获取的值
    console.log(age, 1);
    return age; // 传递给下一个 then, promise链
  .then(age => {
    console.log(age, 2);
    return age;
/******************** 一个Promise对象可以做什么? ******************************************************** */
const promise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve("John Doe");
    reject("Error");
  }, 2000);
promise
  // 捕获 resolve 中的内容
  .then(name => {
    console.log(name);
  // 捕获 reject 中的内容
  .catch(error => {
    console.log(error);
  .finally(() => {
    // 无论 resolve 或 reject 都会执行
                            
Uncaught (in promise) DOMException: The play() request was interrupted by a new load request.异常处理
[Vue warn]: Error in v-on handler (Promise/async): “NavigationDuplicated: Navigating to current loca