JS:Promise解析器不是功能

用户名

我正在尝试运行此jestJS单元测试,但确实得到了TypeError: Promise resolver undefined is not a function我究竟做错了什么?

it('_onSubmit() should throw error if data is missing', (done) => {
  const createUserMutation = () => new Promise()
  const wrapper = shallow(<CreateAccount createUserMutation={createUserMutation} />)
  wrapper.update().find(Form).simulate('submit', {
    preventDefault: () => {}
  })
  createUserMutation.resolve().then(() => {
    expect(console.error).toHaveBeenCalled()
    done()
  })
})
TJ人群

new Promise()正在尝试创建没有执行程序功能的诺言*。正确的用法是传入一个最多接受两个参数(resolvereject的函数,例如:

var p = new Promise((resolve, reject) => {
    // ...code that does something, ultimately calls either resolve or reject
});

有关MDN的更多信息:

稍后,您似乎正在尝试调用resolvePromise实例。您也不能这样做(除非您没有使用标准承诺)。您可以使用resolve传递给执行程序函数来解决承诺(我试图为您修改您的代码,但是需要太多上下文信息。)


*我很惊讶地看到V8的错误消息说“ resolver function”,但是我已经证实了。规范称它为执行器,我以为“解析器函数”将是Promise构造函数传递给它的第一个参数的函数...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章