// 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.

这个错误信息是因为你尝试对一个非可迭代对象进行解构赋值。在你的代码中,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);
}