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) }
    }
     










     

    一点一滴累积,总有一天你也会成为别人口中的大牛!
  • 相关阅读:
    转载:GPRS发短信代码
    如何辨别假币
    【转载】软件开发方向的大学生应该学什么
    第一次喝吐了
    挑战世界2%
    45、c_str与data()
    2、Get和post的区别
    4、suse11安装apache
    1、学习用c/c++写cgi程序
    4、安装rz/sz
  • 原文地址:https://www.cnblogs.com/fancyLee/p/9268716.html
Copyright © 2011-2022 走看看