@sinevik

Не могу разобраться в коротком коде?

Смотрю американские курсы, помогите разобраться в коротком коде

const expect = require('expect');
const request = require('supertest');
const {ObjectID} = require('mongodb');

const {app} = require('./../server');
const {Todo} = require('./../models/todo');



beforeEach((done) => {
  Todo.remove({}).then(() => {
    return Todo.insertMany(todos);
  }).then(() => done());
});


У нас задействован Promise. Подскажите где тут у нас функция reject и resolve. Если нет resolve, где тогда catch? И что такое done?
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
maxfarseer
@maxfarseer
https://maxpfrontend.ru, обучаю реакту и компании
Судя по коду речь идет про тестирование.
Вы описываете callback внутри функции beforeEach.
Callback - это функция, которая будет вызвана в какой-то момент, задуманный автором, следовательно автором же задумано, что внутрь этого "коллбэка" будет передан аргумент - еще одна функция. Вы ее назвали done (так как, все так называют, но вместо done, можно было написать qwe и то же бы работало).

Resolve и reject - это названия (так же придуманные для удобства) функций, которые вы передаете в then:

beforeEach((done) => {
  Todo.remove({}).then(() => {
    return Todo.insertMany(todos);
  }).then(resolve, reject);
});


Получается, что ваш resolve - это первый аргумент, то есть анонимная функция, первая в then, то есть:
() => done()
Функции reject - здесь нет, как нет и функции catch.

Пример, про qwe:
beforeEach((qwe) => {
  Todo.remove({}).then(() => {
    return Todo.insertMany(todos);
  }).then(() => qwe());
});


https://learn.javascript.ru/promise
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы