AllYearbooks

Log in

Email address
Password
Problems logging in?
Email address
Password
Problems logging in?

Create your school yearbook online with AllYearbooks

We're based in Cambridge, U.K., and offer free delivery to the UK mainland.

We also offer worldwide yearbook shipping at competitive prices.

Call us now: 01223 503 259

Come join us!

Web-app developer: code task

Below are details of how to apply for this web-dev job.

In a system, files often need to be fetched or processed asynchronously. Given a prepare_file function, which takes a path and a callback, write a process_files function which takes an array of paths, applies prepare_file to each element, and returns the array of results to a provided callback. The result array should be in the same order as the input array.

Below is a function stub for prepare_file, which simulates an asynchronous task for processing the provided path, and returning the result. (The actual prepare_file function implementation should be considered a black box when implementing process_files.)

      function prepare_file(path, callback) {
       setTimeout(function () {
         callback(path + "_found");
       }, 1000*Math.random());
      };
      

Example use of prepare_file:

      prepare_file('a', function (path) {
       // path should equal 'a_found'
      });
      

Example use of process_files:

      process_files(['a', 'b', 'c'], function (paths) {
       // paths should equal ['a_found', 'b_found', 'c_found']
      });
      

Answers may be in JavaScript or CoffeeScript and should assume the presence of a global prepare_file function (you can use the prepare_file stub above for testing your solution). You shouldn't use any other libraries.


What next?

Send your answer to the task by email to jobs at allyearbooks.co.uk along with a cover letter, CV and/or anything that might impress us.
You can also call Jake on 07791 068 122 to discuss your application.