The code uses the selenium cell
function to automate two tasks (log in facebook
and unfollow everyone facebook
) and handles their execution and errors using a series of then
and catch
blocks.
var importer = require('../Core');
var runSeleniumCell = importer.import("selenium cell");
// Unfollow everyone on facebook?
// https://www.facebook.com/me/following
var loginFacebook, unfollowFacebook;
$.async();
runSeleniumCell([
'log in facebook',
'unfollow everyone facebook'
])
.then(r => {
loginFacebook = r[0];
unfollowFacebook = r[1];
return loginFacebook();
})
.then(() => unfollowFacebook())
.then(r => $.sendResult(r))
.catch(e => $.sendError(e));
const importer = require('../Core');
const { runSeleniumCell } = importer.import('selenium cell');
/**
* Unfollow everyone on Facebook using Selenium.
*
* @returns {Promise<Array<string>>} A promise resolving to an array of function names.
*/
async function runFacebookUnfollow() {
// Get the function names from the array
const [loginFacebook, unfollowFacebook] = [
'log in facebook',
'unfollow everyone facebook'
];
try {
// Run the Selenium cell and get the function results
const [loginResult, unfollowResult] = await runSeleniumCell([
loginFacebook,
unfollowFacebook
]);
// Login using the login function result
await loginResult();
// Unfollow everyone using the unfollow function result
await unfollowResult();
// Return the result
return $.sendResult(null);
} catch (error) {
// If an error occurs, send the error
return $.sendError(error);
}
}
// Run the function
runFacebookUnfollow().catch(e => $.sendError(e));
var importer = require('../Core');
var runSeleniumCell = importer.import('selenium cell');
Core
from the parent directory.selenium cell
from the imported Core
module.runSeleniumCell([
'log in facebook',
'unfollow everyone facebook'
])
runSeleniumCell
function is called with an array of actions to perform:
log in facebook
unfollow everyone facebook
.then(r => {
loginFacebook = r[0];
unfollowFacebook = r[1];
return loginFacebook();
})
.then(() => unfollowFacebook())
.then(r => $.sendResult(r))
.catch(e => $.sendError(e));
then
method is used to chain asynchronous tasks together.selenium cell
function is called, the results are stored in loginFacebook
and unfollowFacebook
.then
block returns the result of calling the loginFacebook
function.then
block calls the unfollowFacebook
function.then
block sends the result of the last task as success using the $.sendResult
function.catch
block catches any errors that occur during the execution and sends them as an error using the $.sendError
function.