I'm working with JavaScript promises, but somewhat new to them and having some issues. In the code below "todoService.addTodo(description);" is an asynchronous call to a server. However, the code does not wait for "todoService.addTodo(description);" to finish, and instead continues executing the code, which means "test" is always equal to null. I'm using promises because I thought this would help deal with the asynch calls, do I'm I simply not understanding the concept, or just doing something wrong syntactically?
let promise = new Promise(function (resolve, reject){
  let test = todoService.addTodo(description);
  console.log(test)
  if (test) {
     console.log("GOOD");
     resolve("OK");
  } else {
      console.log("BAD");
      reject("Unable to connect to server");
  }
});
promise.then(function(result) {
       console.log(result);
    }, function(err) {
        alert(err);
    });
Here is the implementation of addTodo():
addTodo: function (description) {
        serv.todoUrl ='http://localhost:8080/add?description=' + description;
        serv.todoResource = $resource(serv.todoUrl);
        serv.todoResource.save().$promise.then(function (data) {
            console.log(data);
            let toReturn = {result: data.result, details: data.details};
            console.log(toReturn);
            return toReturn;
        }, function (error) {
            return null;
        });
 
    