// 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); }