I'm building my first CRUD (library) application and recently learned about promises as a means to avoid deeply-nested callbacks. I'm attempting to seed my DB with some data each time the server starts, but I seem to be missing something conceptually. 

I have four objects in a `bookData` array that I want to iterate over and save to the DB using Mongoose:

```js
function seedBooks() {
    return new Promise(function(resolve,reject){
        bookData.forEach(function(seed){
            Book.create(seed, function(err, newBook){
                if(err) {
                    reject(err);
                }
            });
        });
        resolve();
    });
}
```

This function is one of a few that I am attempting to chain together, which is why I'm using promises. But I'm finding that `seedBooks()` resolves with anywhere between 1 and 4 of the sample books created, 

```js
function seedDB() {
    removeAllBooks()
    .then(function(){
        return removeAllUsers();
    })
    .then(function(){
        return seedUsers();
    })
    .then(function(){
        return seedBooks();
    })
    .then(function(){
        return seedBookInstances();
    });
}
```

Am I understanding or using promises & resolve incorrectly? Any help is appreciated. Thanks!