uniapp的request请求的Promise 封装出错问题?

2023-03-22 0 4,144
// Promise
uni.request({
    url: "https://unidemo.dcloud.net.cn/api/news",
  })
  .then((data) => {
    // data为一个数组
    // 数组第一项为错误信息 即为 fail 回调
    // 第二项为返回数据
    var [err, res] = data;
    console.log(res);
  });

// Await
async function request() {
  var [err, res] = await uni.request({
    url: "https://unidemo.dcloud.net.cn/api/news",
  });
  console.log(res);
}

照着官方文档这样写不管是上面的方法还是下面的都是会报错的,报错信息如下:
Uncaught (in promise) TypeError: Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.

uniapp的request请求的Promise 封装出错问题?

这个错误信息是因为你尝试对一个非可迭代对象进行解构赋值。在你的代码中,data是一个数组,但是它的第一项并不是一个可迭代对象,所以在尝试解构赋值时会报错。

如果你想要获取data数组中的第二项,可以直接使用索引访问,例如:

// Promise 
uni.request({ url: "https://unidemo.dcloud.net.cn/api/news", }).then((data) => {
    // data为一个数组 
    // 数组第一项为错误信息 即为 fail 回调 
    // 第二项为返回数据 var res = data[1]; console.log(res); 
});

// Await 
async function request() {
    var data = await uni.request(
        { url: "https://unidemo.dcloud.net.cn/api/news", });
    var res = data[0]; 
    console.log(res);
}
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. JK下载官网所有资源来源于开发团队,加入会员即可下载使用!如有问题请联系右下角在线客服!
2. JK下载官方保障所有软件都通过人工亲测,为每位会员用户提供安全可靠的应用软件、游戏资源下载及程序开发服务。
3. JK开发团队针对会员诉求,历经多年拥有现今开发成果, 每款应用程序上线前都经过人工测试无误后提供安装使用,只为会员提供安全原创的应用。
4. PC/移动端应用下载后如遇安装使用问题请联系右下角在线客服或提交工单,一对一指导解决疑难。

JK软件下载官网 技术分享 uniapp的request请求的Promise 封装出错问题? https://www.jkxiazai.com/851.html

JK软件应用商店是经过官方安全认证,保障正版软件平台

相关资源

官方客服团队

为您解决烦忧 - 24小时在线 专业服务