async function fetchRecommendations(apiOptions) {
    let timer;

    try {
        const controller = api.recommendationsPublic;
        let response;

        const logLevel = config.get('optimization:getHelper:timeout:level') || 'error';
        const threshold = config.get('optimization:getHelper:timeout:threshold') || 5000;
        const apiResponse = controller.browse(apiOptions);

        const timeout = new Promise((resolve) => {
            timer = setTimeout(() => {
                logging[logLevel](new errors.HelperWarning({
                    message: `{{#recommendations}} took longer than ${threshold}ms and was aborted`,
                    code: 'ABORTED_RECOMMENDATIONS_HELPER',
                    errorDetails: {
                        api: 'recommendationsPublic.browse',
                        apiOptions
                    }
                }));

                resolve({recommendations: []});
            }, threshold);
        });

        response = await Promise.race([apiResponse, timeout]);
        clearTimeout(timer);

        return response;
    } catch (err) {
        clearTimeout(timer);
        throw err;
    }
}
Call the Recommendation Content API's browse method
@param {Object} apiOptions
@returns {Promise<Object>}