美文网首页
如何解决异步深度嵌套的困扰

如何解决异步深度嵌套的困扰

作者: 默成S | 来源:发表于2018-01-06 09:02 被阅读0次

js编程最困难的就是异步深度嵌套。比如我们在业务处理时有这样的需求:
你有用户名变量和值,依据用户名去获取用户信息,再依据用户信息里的id去获取该id对应的所有文章。
这种一环套一环的业务模式太常见的。

axios.get('/api/user?name=xugaoyang')
  .then(function (response) {
    let userInfo = response.data;
    
    axios.get('api/topics?user_id=' + userInfo._id)
      .then(function (response) {
        let topics = response.data;

        // i got it.
      })
      .catch(function (err) {
        console.log(err);
      });
  })
  .catch(function (err) {
    console.log(err);
  });

很多人改进此类问题时,只是简单的把内部嵌套调用封装成函数

function getTopics(id) {
  axios.get('api/topics?user_id=' + id)
  .then(function (response) {
    let topics = response.data;

    // i got it.
  })
  .catch(function (err) {
    console.log(err);
  });
}

axios.get('/api/user?name=xugaoyang')
  .then(function (response) {
    let userInfo = response.data;
    
    getTopics(userInfo.id)
  })
  .catch(function (err) {
    console.log(err);
  });

以上只是代码结构上的调整,但没有解决深度嵌套的核心问题。
你有好的建议吗?


Promises 入门 - 从菜鸡到吃鸡:https://github.com/Dream4ever/JavaScript/blob/master/topics/promises.md
这是一篇很好的文章,详细的解释了“承诺”的使用方法。

相关文章

  • 如何解决异步深度嵌套的困扰

    js编程最困难的就是异步深度嵌套。比如我们在业务处理时有这样的需求:你有用户名变量和值,依据用户名去获取用户信息,...

  • 11- generator

    genarator函数: 生成器,解决异步问题,深度嵌套。 语法: genarator结合axios数据请求:

  • ES6——generator函数(一)

    生成器,用于解决异步深度嵌套的问题(过渡期的产物,没有async好用,koa 框架新版本不支持generator函...

  • 3.2KOA async/await 语法

    async/await 语法 作用 解决异步嵌套问题,传说中的终极解决方案 异步问题 async/await 实现...

  • Promise

    Promise是异步里面的一种解决方案,解决了回调嵌套的问题异步操作未完成(pending)异步操作成功(fulf...

  • 05vue2.0-vue中_接口的调用

    promise 主要解决异步深层嵌套的问题 promise 提供了简洁的API 使得异步操作更加容易 基于Pro...

  • Vue-04

    promise 主要解决异步深层嵌套的问题 promise 提供了简洁的API 使得异步操作更加容易 基于Pro...

  • 初识Promise并手写符合PromiseA+规范的Promis

    ### 背景 Promise是异步编程的一种解决方案,它可以解决异步回调地狱的问题,防止层层嵌套对程序代码带来的难...

  • Node.js十问十答

    1、在开发Node.js的时候异步的嵌套很麻烦,有人叫回调地狱或回调黑洞,如何解决这一问题? 答:promise ...

  • 学习纲要:异步流程处理

    在处理复杂的异步流程时,用异步结束后,在回调函数中执行下一个异步的方式,会导致回调函数深度嵌套的问题。让代码变得难...

网友评论

      本文标题:如何解决异步深度嵌套的困扰

      本文链接:https://www.haomeiwen.com/subject/wugenxtx.html