我很困惑,为什么这个代码返回承诺的数组,而最后一位返回的实际数据(对象数组):异步()伺机返回,而不是数据无极
(async() => {
\t \t const [user, posts] = await Promise.all([
\t \t \t fetch('https://jsonplaceholder.typicode.com/users'),
\t \t \t fetch('https://jsonplaceholder.typicode.com/posts')
\t \t ]).then(([res,res2]) => [res.json(),res2.json()]
\t \t).then(([d1,d2]) => {
\t \t \t console.log(d1,d2);
\t });
})();
// Promise {[[PromiseStatus]]: "resolved", [[PromiseValue]]: Array(10)}
// Promise {[[PromiseStatus]]: "resolved", [[PromiseValue]]: Array(100)}
当我用自己取,我得到的数据我想:
fetch('https://jsonplaceholder.typicode.com/posts')
\t .then((res) => res.json())
\t .then((data) => console.log(data)); // returns array of objects
// (100) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, ...
@ jfriend00这很有意义。谢谢。我在https://hackernoon.com/javascript-hacks-for-es6-hipsters-67d633ce8ace上看到了这个“ES6时尚人士的JavaScript黑客”中的例子,我想我会试试。 虽然一个快速笔记。此代码现在返回“未捕获(承诺)TypeError :(中间值)不可迭代” – rsilva
@rsilva - 哪些代码返回该错误? – jfriend00
您在上面提供的那个。 – rsilva