Лучше ли использовать затем в экспресс или вкладывать функции? - PullRequest
0 голосов
/ 08 октября 2018

Хорошо, так что я еще не видел этот вопрос, и мне очень трудно найти лучшие практики в Express.Пожалуйста, дайте мне знать, что лучше практиковать это:

let id = req.params.id;
Story.findOne({_id:id})
    .then(story => {
        Chapter.find({storyId:story._id})
            .then(chapters => {
                res.send({story:story, chapters:chapters});
            })
            .catch(err => {
                res.status(400).send('Failed Finding Chapters' + err);
            });
    })
    .catch(err => {
        res.status(400).send('Failed Finding Stories'  + err);
    });

или Это:

let id = req.params.id;
Story.findOne({_id:id}, (err, story) => {
    Chapter.find({storyId:story._id}, (err, chapters) => {
        res.send({story:story, chapters:chapters});
    });
});

Пожалуйста, объясните.Заранее спасибо за любую помощь.

1 Ответ

0 голосов
/ 08 октября 2018

Обычно подход к обещаниям then считается более легким.Одна из причин в том, что вы полагаетесь на обычные возвращаемые значения, а поток кода является последовательным.В случае передачи функций, таких как обратные вызовы, сложнее читать и составлять, потому что потоком кода является cps (стиль передачи продолжения), а возвращаемые значения игнорируются.

Здесь вы можете найти дополнительную информацию относительно этого: Каковы преимущества Обещаний над CPS и Функтором продолжения / Монадой? (немного сложнее, но комментарии довольно хороши)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...