javascript - Promise的意义是什么?

 手机用户2502877051 发布于 2022-11-08 14:48

在做微信小程序的时候遇到了请求异步的问题,导致代码冗长而且复用性很低。后来研究了promise但是发现这个东西并不能解决以上问题

之前的小程序代码类似于这样

wx.request{{
    url:'xxx',
    data:{
        data:somthing
    },
    success:function(){
         wx.request{{
            url:'xxx',
            data:{
                data:somthing
            },
            success:function(){
                
            }
}}
    }
}}

然后 promise 代码类似于这样 
    wx.pro.request({
        url:'xxx',
        data:{
            data:somthing
        },
    }).then(function(data){
         wx.pro.request({
            url:'xxx',
            data:{
                data:somthing
            },
        }).then(function(data){
            
        });
    });
3 个回答
  • 当有多个请求之间有相互依赖关系(紧接着的请求需要上一次请求的返回结果),这时promise的作用就凸显出来了。
    如果不用promise,常规做法只能callback层层嵌套,俗称callback hell,可读性和维护性都很差的。

    2022-11-12 01:43 回答
  • 建议你读一读 https://github.com/getify/You...

    Promise的意义在于规范化回调(永远看做是异步),解决信任危机等。链式调用的流程控制只是“Promise可以组合到一起”所带来的附加益处,而不是主要目的。

    流程控制可以使用生成器、async之类的。

    PS:
    wx.pro.request({

        url:'xxx',
        data:{
            data:somthing
        },
    }).then(function(data){
         return wx.pro.request({
            url:'xxx',
            data:{
                data:somthing
            },
        })
    }).then(function(data){
            
        });;
    2022-11-12 01:43 回答
  • 我说怎么这么别扭 你的.then写错地方了
    应该是这样的结构a().then(b).then(c)
    你写的是a().then(b.then(c))

    2022-11-12 01:43 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有