如何使用Promise.all方法?
how to use Promise.all method?
我在使用 Promise.all 时遇到问题 当我尝试遍历数组以将元素转换为 json 时,它不起作用,有人可以解释为什么它不起作用吗?
function getData() {
let getUsers = fetch('https://jsonplaceholder.typicode.com/users')
let getTodos = fetch('https://jsonplaceholder.typicode.com/todos')
Promise.all([getUsers, getTodos])
.then(data => {
data.forEach(item => {
item.json()
console.log(item)});
})
.catch(err => console.log(err))
};
getData();
更好的主意:将 JavaScript 更改为使用 async function
,这意味着您根本不需要使用 Promise.all
,如下所示:
async function getData() {
const usersPromise = fetch('https://jsonplaceholder.typicode.com/users');
const todosPromise = fetch('https://jsonplaceholder.typicode.com/todos');
const users = await usersPromise;
const todos = await todosPromise;
for( const todo of todos ) {
console.log( todo );
}
}
getData();
Promise.all()
接受一个 Promise 数组,returns 一个解析为由 promises 返回的值数组的 Promise。
例如:
const promiseA = Promise.resolve('valueA');
const promiseB = Promise.resolve('valueB');
Promise.all([promiseA, promiseB]).then(data => {
console.log(data); // [ 'valueA', 'valueB' ]
})
所以data
是一个数组[ users, todos ]
(其中users
是fetch('https://jsonplaceholder.typicode.com/users')
的结果)
function getData() {
let getUsers = fetch('https://jsonplaceholder.typicode.com/users').then(response => response.json())
let getTodos = fetch('https://jsonplaceholder.typicode.com/todos').then(response => response.json())
Promise.all([getUsers, getTodos])
.then(data => {
const [users, todos] = data;
users.forEach(user => {
console.log(user)
});
todos.(todo => {
console.log(todo)
});
})
.catch(err => console.log(err))
};
getData();
我在使用 Promise.all 时遇到问题 当我尝试遍历数组以将元素转换为 json 时,它不起作用,有人可以解释为什么它不起作用吗?
function getData() {
let getUsers = fetch('https://jsonplaceholder.typicode.com/users')
let getTodos = fetch('https://jsonplaceholder.typicode.com/todos')
Promise.all([getUsers, getTodos])
.then(data => {
data.forEach(item => {
item.json()
console.log(item)});
})
.catch(err => console.log(err))
};
getData();
更好的主意:将 JavaScript 更改为使用 async function
,这意味着您根本不需要使用 Promise.all
,如下所示:
async function getData() {
const usersPromise = fetch('https://jsonplaceholder.typicode.com/users');
const todosPromise = fetch('https://jsonplaceholder.typicode.com/todos');
const users = await usersPromise;
const todos = await todosPromise;
for( const todo of todos ) {
console.log( todo );
}
}
getData();
Promise.all()
接受一个 Promise 数组,returns 一个解析为由 promises 返回的值数组的 Promise。
例如:
const promiseA = Promise.resolve('valueA');
const promiseB = Promise.resolve('valueB');
Promise.all([promiseA, promiseB]).then(data => {
console.log(data); // [ 'valueA', 'valueB' ]
})
所以data
是一个数组[ users, todos ]
(其中users
是fetch('https://jsonplaceholder.typicode.com/users')
的结果)
function getData() {
let getUsers = fetch('https://jsonplaceholder.typicode.com/users').then(response => response.json())
let getTodos = fetch('https://jsonplaceholder.typicode.com/todos').then(response => response.json())
Promise.all([getUsers, getTodos])
.then(data => {
const [users, todos] = data;
users.forEach(user => {
console.log(user)
});
todos.(todo => {
console.log(todo)
});
})
.catch(err => console.log(err))
};
getData();