const {_android: android} = require('playwright'); const ExcelUtil = require("./src/excel/ExcelUtil"); const CommandorPage = require("./src/workers/CommandorPage"); const MongoManager = require("./src/workers/mongo_manager"); function delay(delayInms) { return new Promise(resolve => { setTimeout(() => { resolve(2); }, delayInms); }); } const mongoManager = new MongoManager(); let excelUtil = new ExcelUtil(); let contactList = excelUtil.readContacts(); // Connect to the device. async function startBook(contactPojo, device) { console.log(`Model: ${device.model()}`); console.log(`Serial: ${device.serial()}`); let commandor = new CommandorPage(contactPojo, device, mongoManager); //read contacts form excel return await commandor.loadPage(); } mongoManager.connect().then(r => console.log("mongo connected")) async function printFiles() { let devices = await android.devices(); await contactList.reduce(async (promise, contactPojo) => { // This line will wait for the last async function to finish. // The first iteration uses an already resolved Promise // so, it will immediately continue. await promise; const contents = await startBook(contactPojo, devices[0]); console.log(contents); }, Promise.resolve()); } (async () => { printFiles() })() // android.devices().then((device_list) => { // contactList.forEach((contactPojo) => { // device_list.forEach((device) => { // (async () => { // await startBook(contactPojo, device) // })() // } // ) // } // ) // })