当前位置: 首页 > 面试题库 >

反应悬念/延迟延迟?

羊舌高爽
2023-03-14
问题内容

我正在尝试使用新的React
Lazy和Suspense创建后备加载组件。这很好用,但后备时间仅显示几毫秒。有没有办法增加额外的延迟或最短时间,因此我可以在渲染下一个组件之前显示该组件的动画?

现在懒导入

const Home = lazy(() => import("./home"));
const Products = lazy(() => import("./home/products"));

等待组件:

function WaitingComponent(Component) {

    return props => (
      <Suspense fallback={<Loading />}>
            <Component {...props} />
      </Suspense>
    );
}

我可以做这样的事情吗?

const Home = lazy(() => {
  setTimeout(import("./home"), 300);
});

问题答案:

lazy函数应该返回{ default: ... }对象的承诺,该对象由import()具有默认导出功能的模块返回。setTimeout不会返回承诺,也不能那样使用。尽管任意承诺可以:

const Home = lazy(() => {
  return new Promise(resolve => {
    setTimeout(() => resolve(import("./home")), 300);
  });
});

如果目标是提供 最小的 延迟,那么这不是一个好选择,因为这会导致 额外的 延迟。

最小延迟为:

const Home = lazy(() => {
  return Promise.all([
    import("./home"),
    new Promise(resolve => setTimeout(resolve, 300))
  ])
  .then(([moduleExports]) => moduleExports);
});


 类似资料:
  • 主要内容:SDF 文件,实例,实例,实例关键词: 延迟反标注, SDF 延迟反标注是设计者根据单元库工艺、门级网表、版图中的电容电阻等信息,借助数字设计工具将延迟信息标注到门级网表中的过程。利用延迟反标注后的网表,就可以进行精确的时序仿真,使仿真更接近实际工作的数字电路。 延迟反标注过程 前面教程中的仿真基本都是功能性的仿真。无论是进行 IC 设计还是 FPGA 开发,时序仿真都是必不可少的。《Verilog 教程》的《1.4 Veri

  • 基于如何使用Spring引导WebClient收集分页API响应? 我创建了以下爬虫类 我希望避免不必要的请求,但它执行的请求比满足请求所需的多。 只需要一个请求,因为每个页面包含20个条目,但它会启动第二个页面请求。它似乎总是要求多出一页。我尝试使用,但似乎没有效果。 有没有一种方法可以让它变得懒惰,即只有在当前页面用完时才请求下一页?

  • 问题内容: 我发现很难理解“延迟反模式”。我想我基本上理解了它,但是我还没有看到一个简单的例子,说明什么是服务,具有不同的承诺和一个具有反模式的服务,所以我想尽我所能,但是看到自己不是这样超级了解这一点,我会先澄清一下。 我在工厂(SomeFactory)中具有以下内容: 我检查其对象的原因只是为了在其上添加一个简单的验证层 在下面,在我的指令中: 现在来看,这是一种反模式。因为原始的延迟承诺会捕

  • 我正在用Netty框架创建一个代理,但我注意到收到的最后一条消息在传递到下一个节点之前往往会延迟。 设计: 客户| 基本上,当服务器在将消息传递给客户机之前启动消息时会出现延迟,或者如果服务器在第一条消息之后立即发送后续消息,那么第一条消息就会通过,第二条消息会延迟几秒钟。为什么会这样?是否缺少一些配置参数?

  • 问题内容: 我正在尝试制作一个Java应用程序,该应用程序能够在检测到Midi设备后在计算机上播放笔记。 一旦获得所需的Midi设备,我就设置了接收器,该设备的发送器将向其发送MIDI消息。 类MyReceiver看起来像: 当我运行代码并开始在Midi设备上播放时,我的等待时间很长(我听不到即时的笔记)。 我该如何解决这个问题? 问题答案: 我正在使用使用asio驱动程序来避免延迟的JAsioH

  • 问题内容: 该Plunkr有2个链接。左侧的那个正在使用ng-click指令,并插入了on angular-touch模块。如ng- click的角接触模块描述中所述,ng-click链接不应具有300ms的延迟。但是,如果您在移动设备上进行测试,情况仍然如此。 那么plunkr是否会阻止正确的功能,因为它是在iFrame中执行的或类似的操作,还是需要将Fastclick.js插入项目才能使指令正