Jestjs WaitforWon';不要再次运行回调

Jestjs WaitforWon';不要再次运行回调,jestjs,react-testing-library,Jestjs,React Testing Library,我试图测试waitFor的说法,但当我使用承诺时,回调不会再次运行,即使它被拒绝 waitFor可能会多次运行回调 如果您有模拟API调用和 你需要等待你的假承诺全部解决 如果在waitFor回调中返回承诺(显式或 隐式地使用异步语法),则waitFor实用程序将不会调用 你再回电话,直到承诺被拒绝。这允许您 等待必须异步检查的内容 @EstusFlask你什么意思?不会复制我的问题?我专门运行了这段代码,我遇到了上面的问题。我的意思是其他人(不是你)可能无法复制它。我专门运行了这段代码,它按照

我试图测试waitFor的说法,但当我使用承诺时,回调不会再次运行,即使它被拒绝

waitFor可能会多次运行回调

如果您有模拟API调用和 你需要等待你的假承诺全部解决

如果在waitFor回调中返回承诺(显式或 隐式地使用异步语法),则waitFor实用程序将不会调用 你再回电话,直到承诺被拒绝。这允许您 等待必须异步检查的内容


@EstusFlask你什么意思?不会复制我的问题?我专门运行了这段代码,我遇到了上面的问题。我的意思是其他人(不是你)可能无法复制它。我专门运行了这段代码,它按照预期记录了一堆
heyy
。不知道为什么它会在您的终端上表现出这样的行为,可能是由于某些依赖版本,或者代码与您发布的不同,或者其他原因。因为这种行为是非常规的,所以这个问题不必离题。看见由于问题可能是特定于一个设置,回购协议将适合这种情况,请确保它确实可以在克隆和复制后复制installing@EstusFlask你能告诉我你的测试库版本和笑话吗version@testing-库/react 11.1.0和jest 26.5.3。在我的例子中,我显然没有“/request”模块,这可能是第一个也是非常重要的区别,因为“/request”中的
function asyncFunc(){
{asyncFunc}
竞争相同的名称,在您的案例中,
waitFor
使用了哪个
asyncFunc
实现并不明显。@EstusFlask我通过应用这个“jest环境jsdom 16”复制了文档中所说的内容测试react脚本。我不知道为什么会这样。我使用创建react应用程序模板,所有依赖项都是最新的。
import { waitFor } from "@testing-library/react";
import request, { asyncFunc } from "./request";

jest.mock("./request");

function asyncFunc() {
  return new Promise((res, rej) => {
    setTimeout(() => {
      rej(4);
    }, 50);
  });
}

test.only("waits 1 second before ending the game", async () => {
  await waitFor(() => {
    return console.log("heyy"), asyncFunc();
  });
});