zoukankan      html  css  js  c++  java
  • async/await让你的代码更加优雅

    一. 回调地狱:回调函数里面嵌套着回调函数嵌套着回调函数”,这就是被传说中的“回调地狱
    callbackHell () {
    const api = new Api()
    let user, friends
    api.getUser().then(function (returnedUser) {
    user = returnedUser
    api.getFriends(user.id).then(function (returnedFriends) {
    friends = returnedFriends
    api.getPhoto(user.id).then(function (photo) {
    console.log('callbackHell', {user, friends, photo})
    })
    })
    })
    }
    二. 如何优雅解决回掉地狱
    1. promise chain
    promiseChain () {
    const api = new Api()
    let user, friends
    api.getUser()
    .then((returnedUser) => {
    user = returnedUser
    return api.getFriends(user.id)
    })
    .then((returnedFriends) => {
    friends = returnedFriends
    return api.getPhoto(user.id)
    })
    .then((photo) => {
    console.log('promiseChain', { user, friends, photo })
    }).catch((err) => {
        console.error(err)
      })

    }
    2. await/async
    async asyncAwaitIsYourNewBestFriend () {
      try {

       const api = new Api()
       const user = await api.getUser()
       const friends = await api.getFriends(user.id)
       const photo = await api.getPhoto(user.id)
       console.log('asyncAwaitIsYourNewBestFriend', { user, friends, photo })
      } catch (err) { console.error(err) }
    }
     










     

    一点一滴累积,总有一天你也会成为别人口中的大牛!
  • 相关阅读:
    PL/SQL注册码
    分页sql
    js获取url值
    C语言中的bool类型 stdbool.h
    语音朗读小程序
    50. Pow(x, n)
    二维数组旋转
    用一位数组代替二维数组作为形参使用
    单链表排序——交换数据成员
    C++重载输入流、输出流运算符
  • 原文地址:https://www.cnblogs.com/fancyLee/p/9268716.html
Copyright © 2011-2022 走看看