📅  最后修改于: 2023-12-03 15:26:01.870000             🧑  作者: Mango
收集.js是一个JavaScript库,它提供了一组函数来收集Web页面上的数据。其中,forPage()函数是一种用于循环遍历页面元素的方法。本文将介绍forPage()函数的使用方法和注意事项。
forPage(selector: string, callback: Function, ...args: any[]): Promise<any>
以下示例演示了如何使用forPage()函数来循环遍历页面中所有的li元素,并打印它们的文本内容。
import { forPage } from 'collect.js';
async function example() {
await forPage('li', (element) => {
console.log(element.innerText);
});
}
example();
以上代码中,forPage()函数会在页面中查询所有的li元素,并依次将它们传递给回调函数。回调函数中的参数element就是当前循环遍历的元素。
有时候,需要传递额外的参数给回调函数,以满足特定的需求。以下示例演示了如何使用args参数来传递额外参数。
import { forPage } from 'collect.js';
async function example() {
const data = [
{ name: 'Alice', age: 18 },
{ name: 'Bob', age: 20 },
{ name: 'Charlie', age: 25 },
];
await forPage('li', (element, index, dataItem) => {
console.log(`${dataItem.name}(${dataItem.age}) - ${element.innerText}`);
}, ...data);
}
example();
以上代码中,我们创建了一个包含多个对象的数据数组,并将它们作为args参数传递给回调函数。回调函数中的参数index表示当前循环遍历的元素在数组中的索引,dataItem就是当前索引对应的数据对象。
在forPage()函数中,我们可以使用async/await语法来处理异步操作。以下示例演示了如何在forPage()函数中调用一个异步函数。
import { forPage } from 'collect.js';
async function fetchUserData(userId) {
const response = await fetch(`https://api.example.com/users/${userId}`);
const data = await response.json();
return data;
}
async function example() {
await forPage('li', async (element) => {
const userId = element.dataset.userId;
const userData = await fetchUserData(userId);
console.log(userData.name);
});
}
example();
以上代码中,我们在回调函数中调用了一个异步函数fetchUserData(),来获取用户数据。当forPage()函数循环遍历到某个元素时,它会调用fetchUserData()函数,并在获取到数据后才往下执行。