相关文章推荐
发财的西红柿  ·  不动产登记“一问一答”_广东省自然资源厅·  1 年前    · 
读研的肉夹馍  ·  请问这是什么花?白色丝状顶端红色,长在树上的 ...·  2 年前    · 
直爽的饭盒  ·  Red ...·  2 年前    · 
从未表白的墨镜  ·  勾引名导被拒、终于傍上富婆的男爱豆,却被撕得 ...·  2 年前    · 
坚韧的红薯  ·  众星闪耀2014上海AsiaYoung亚洲时 ...·  2 年前    · 
小百科  ›  javascript - React Jest:- node:internal/process/promises:246 triggerUncaughtException(err, true /\*
data react response
曾经爱过的八宝粥
1 年前
segmentfault segmentfault
注册登录
问答 博客 活动
发现
✓ 使用“Bing”搜本站 使用“Google”搜本站 使用“百度”搜本站 站内搜索
注册登录
  1. 首页
  2. 问答
  3. Stack Overflow 翻译
  4. 问答详情

React Jest:- node:internal/process/promises:246 triggerUncaughtException(err, true /\* fromPromise \*/);

社区维基
1
发布于
2022-12-12
新手上路,请多包涵

我有以下代码反应。

 useEffect(() => {
        (async () => {
            await httpClient
                .get(`${config.resourceServerUrl}/inventory/`)
                .then((response) => {
                    setSponsor(response.data.sponsor);
                    setAddress(response.data.address);
                    setPhaseOfTrial(response.data.phaseOfTrial);
                .catch((error) => {
                    alert(error);
        })();
    }, []);

此代码成功运行。唯一的问题是,它在开玩笑的测试用例中失败了。

 describe('ListInventory', () => {
    it('should render successfully', () => {
        const { baseElement } = render(<ListInventory />);
        expect(baseElement).toBeTruthy();

下面是错误。

 node:internal/process/promises:246
          triggerUncaughtException(err, true /* fromPromise */);
[UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason "TypeError: Cannot read properties of undefined (reading 'get')".] {
  code: 'ERR_UNHANDLED_REJECTION'

我已经在使用 catch 块。代码有什么问题?你能帮我做同样的事吗?

原文由 Shruti sharma 发布,翻译遵循 CC BY-SA 4.0 许可协议

Stack Overflow 翻译 javascript reactjs promise jestjs callback
阅读 4.2k
2 个回答
得票 最新
社区维基
1
发布于
2022-12-12
✓ 已被采纳

尝试使用 try-catch 块处理 promise,如下所示:

   useEffect(() => {
    (async () => {
      try {
        let response = await httpClient.get(
          `${config.resourceServerUrl}/inventory/`
        setSponsor(response.data.sponsor);
        setAddress(response.data.address);
        setPhaseOfTrial(response.data.phaseOfTrial);
      } catch(error) {
        alert(error);
    })();
  }, []);
  useEffect(() => {
    (async () => {
        let response = await httpClient.get(
          `${config.resourceServerUrl}/inventory/`
        setSponsor(response.data.sponsor);
        setAddress(response.data.address);
        setPhaseOfTrial(response.data.phaseOfTrial);
    })().catch(e=>alert(e));
  }, []);

原文由 NeERAJ TK 发布,翻译遵循 CC BY-SA 4.0 许可协议

社区维基
1
发布于
2022-12-12

你应该让你的测试异步,因为你的代码中有异步调用:

 describe('ListInventory', () => {
    it('should render successfully', async() => {
        const { baseElement } = render(<ListInventory />);
        expect(baseElement).toBeTruthy();
 
推荐文章
发财的西红柿  ·  不动产登记“一问一答”_广东省自然资源厅
1 年前
读研的肉夹馍  ·  请问这是什么花?白色丝状顶端红色,长在树上的。? - 知乎
2 年前
直爽的饭盒  ·  Red Velvet的《Psycho》是否抄袭了OneRepublic的《Secrets》? - 没人唠嗑 的回答 - 知乎
2 年前
从未表白的墨镜  ·  勾引名导被拒、终于傍上富婆的男爱豆,却被撕得底裤都不剩?|渣男|劈腿|小三|朱一龙|谈恋爱_网易订阅
2 年前
坚韧的红薯  ·  众星闪耀2014上海AsiaYoung亚洲时尚|AsiaYoung|藤井莉娜|井柏然_新浪时尚_新浪网
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
小百科 - 百科知识指南
© 2024 ~ 沪ICP备11025650号