Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 摩卡咖啡前不';别让我下一个去_Javascript_Promise_Mocha.js_Chai - Fatal编程技术网

Javascript 摩卡咖啡前不';别让我下一个去

Javascript 摩卡咖啡前不';别让我下一个去,javascript,promise,mocha.js,chai,Javascript,Promise,Mocha.js,Chai,我有一个摩卡测试的问题,我正在尝试做一些测试的初始设置。不幸的是,我不知道为什么摩卡咖啡没有显示任何错误。Promise.all正常工作并向我显示结果,但它不允许我进入下一步->测试 只要我删除第二个承诺(createCourseAndReview)并且所有测试都通过(我的意思是它正在执行测试),它就可以工作 我没有收到任何错误,也不知道如何解决此类问题。您的来源有点混乱。您没有将回调样式的方法正确地转换为承诺,您确实应该避免使用新承诺模式。您也不需要为每个承诺链都使用catch语句,只需要最后

我有一个摩卡测试的问题,我正在尝试做一些测试的初始设置。不幸的是,我不知道为什么摩卡咖啡没有显示任何错误。Promise.all正常工作并向我显示结果,但它不允许我进入下一步->测试

只要我删除第二个承诺(createCourseAndReview)并且所有测试都通过(我的意思是它正在执行测试),它就可以工作


我没有收到任何错误,也不知道如何解决此类问题。

您的来源有点混乱。您没有将回调样式的方法正确地转换为承诺,您确实应该避免使用
新承诺
模式。您也不需要为每个承诺链都使用catch语句,只需要最后一个。我将花几分钟重写您的源代码,避免异步/等待,但删除一些糟糕的设计模式。事后看来,我不确定您调用的API是否正确。似乎
Users.remove()
是回调样式,而
User.create()
是承诺样式。如果您没有编写
User
,我认为这也是不正确的,因为这些范例通常不是混合的。如果你真的写了它,我真的建议你首先回到那些函数,让一切都成为承诺式的。但在承诺中,我能展示的是正确的结果。我的第一步是转到你的用户对象,确保每个函数都使用承诺,而没有函数使用回调。现在看起来这个类同时做这两件事。你的源代码有点乱。您没有将回调样式的方法正确地转换为承诺,您确实应该避免使用
新承诺
模式。您也不需要为每个承诺链都使用catch语句,只需要最后一个。我将花几分钟重写您的源代码,避免异步/等待,但删除一些糟糕的设计模式。事后看来,我不确定您调用的API是否正确。似乎
Users.remove()
是回调样式,而
User.create()
是承诺样式。如果您没有编写
User
,我认为这也是不正确的,因为这些范例通常不是混合的。如果你真的写了它,我真的建议你首先回到那些函数,让一切都成为承诺式的。但在承诺中,我能展示的是正确的结果。我的第一步是转到你的用户对象,确保每个函数都使用承诺,而没有函数使用回调。现在看来,这两门课是同时进行的。
before(() => {
  return new Promise((resolve, reject) => {
    const createUser = User.remove({}, function(err) {
      if (err) {
        console.log(err);
        return Promise.reject();
      }
      User.create({
        googleId: "googleId",
        name: "name",
        email: "email@email.com",
        phone: "000000000"
      })
        .then(res => {
          token = createToken({ googleId: res.googleId });
          return Promise.resolve();
        })
        .catch(err => {
          console.log(err);
          return Promise.reject();
        });
    });
    const createCourseAndReview = Course.remove({}, function(err) {
      if (err) {
        return Promise.reject();
      }
      Course.create({
        title: "Tytuł",
        shortTitle: "Krótki tytuł",
        video: {
          link: "http://",
          title: "Tytuł",
          shortDescription: "video desc"
        },
        content: "zawartość",
        image: "gosc.jpg",
        duration: "2 tygonie",
        price: "120zł/h",
        shortDescription: "Krótki opis",
        technologies: ["Java", "Javascript"],
        maxMembers: "12/12",
        reviews: [],
        comments: []
      })
        .then(doc => {
          Course.update(
            { _id: doc._id },
            {
              $push: {
                reviews: {
                  content: "Zawartość",
                  grade: 5,
                  user: {
                    googleId: "googleId",
                    name: "name",
                    email: "email@email.com",
                    phone: "000000000"
                  }
                }
              }
            }
          ).then(() => {
            return Promise.resolve();
          });
        })
        .catch(err => {
          console.log(err);
          return Promise.reject();
        });
    });

    Promise.all([createUser, createCourseAndReview])
      .then(results => {
        console.log(results);
        resolve();
      })
      .catch(err => {
        console.log(err);
        reject();
      });
  });
});