法王愫
法王愫
  • 发布:2022-12-06 00:51
  • 更新:2022-12-06 00:51
  • 阅读:291

关于Promise错误捕获的问题

分类:HBuilderX

需求:通过第一个request(url:https://ku.qingnian8.com/dataApi/news/navlist.php)
请求回来的数据,取第一项里面的id,
第二个request(url:https://ku.qingnian8.com/dataApi/news/newslist.php)携带这个id取得对应得数据。

问题:如果我把第一个request的url故意写错了(url最后多写一个1),那么他应该是返回fail: (err) => {reject(err)},后面的请求不应该是不执行了嘛?但是浏览器和编辑器控制台输出却不一样。

onLoad() {  
            this.getdata().then(res => {  
                let id = res.data[0].id  
                return this.getlist(id)  
            }).then(res => {  
                console.log(res);  
            }).catch(err => {  
                console.log(err);  
            })  

        }  
methods: {  
            getdata() {  
                return new Promise((resolve, reject) => {  
                    uni.request({  
                        url: 'https://ku.qingnian8.com/dataApi/news/navlist.php1',  
                        success: (res) => {  
                            resolve(res)  
                        },  
                        fail: (err) => {  
                            reject(err)  
                        }  
                    })  

                })  
            },  
            // getdata结束  
            getlist(id) {  
                return new Promise((resolve, reject) => {  
                    uni.request({  
                        url: 'https://ku.qingnian8.com/dataApi/news/newslist.php',  
                        data: {  
                            cid: id  
                        },  
                        success: (res) => {  
                            resolve(res)  
                        },  
                        fail: (err) => {  
                            reject(err)  
                        }  
                    })  
                })  
            }  
            // getlist结束  
        }  

2022-12-06 00:51 负责人:无 分享
已邀请:

该问题目前已经被锁定, 无法添加新回复