当前位置: 首页 > 编程笔记 >

ember.js 并发任务

柯昆杰
2023-03-14
本文向大家介绍ember.js 并发任务,包括了ember.js 并发任务的使用技巧和注意事项,需要的朋友参考一下

示例

另一种事实上的社区标准是称为ember-concurrency的附加组件,它使很多承诺混乱都消除了。

可以使用命令安装ember install ember-concurrency。

优点

  • 复杂异步代码的直观推理。

  • 提供用于管理任务的完整API。

  • 可以取消。

  • 可以直接在组件中使用,而无需代理对象。

  • 在任务功能内部分解承诺。

  • 可以使用JavaScript try/ catch/finally块管理异步分配,异常和清理。

  • 任务在willDestroy发生事件时会自动取消,从而避免错误设置销毁对象的值(例如在计时器之后)

缺点

  • 不内置-要求 ember install ember-concurrency

  • 使用生成器函数可能会使用于承诺链的开发人员感到困惑。

的JavaScript

import Ember from 'ember';
import { task, timeout } from 'ember-concurrency';

const { Component, set } = Ember;

export default Component.extend({
  myTask: task(function * () {
    set(this, 'error', null);
    try {
      yield timeout(2000);
      return 'Foobar';
    } catch (err) {
      set(this, 'error', error);
    }
  }).keepLatest()
});

模板

{{#if myTask.isIdle}}
  <button onclick={{perform myTask}}>
    Start Task
  </button>
{{else}}
  Loading&hellip;
{{/if}} 

{{#if myTask.last.value}}
  Done. {{myTask.last.value}}
{{/if}}

{{#if error}}
  Something went wrong. {{error}}
{{/if}}
           

 类似资料:
  • Ember是一个雄心勃勃的Web应用程序,消除了样板,并提供了一个标准的应用程序架构的JavaScript框架。 Ember is a JavaScript framework for creating ambitious web applications that eliminates boilerplate and provides a standard application archite

  • 我的问题是这样的:我最多可以运行三个并发任务。这些任务可以同时处理1到100个作业。我有很多线程不断地提交单个作业,我想尽可能快地响应它们。在一个任务中处理100个作业所花费的时间与在一个任务中处理1个作业所花费的时间相同。作业随机间隔出现。提交作业的线程需要阻塞,直到作业完成,或者遇到超时。快速响应提交作业的线程是这里的驱动程序。 所以我目前的逻辑是:如果有 我只是不太确定在Java中设置它的最

  • 可以配置Ember.js来管理应用程序的环境。 配置Ember.js包括以下主题 - S.No. 配置方式和说明 1 配置App和Ember CLI 您可以配置Ember App和CLI以管理应用程序的环境。 2 禁用原型扩展并指定URL类型 可以通过将EXTEND_PROTOTYPES标志设置为false并使用Ember路由器选项指定URL类型来禁用原型扩展。 3 嵌入应用程序和功能标志 您可以

  • 英文原文:http://emberjs.com/guides/ 欢迎来到Ember.js指南!本指南将引领你从Ember.js的初学者变成Ember.js专家。本指南将从Ember.js基础开始,逐渐深入到更为复杂的概念,直至让你掌握了使用Ember.js来构建一个非凡的Web应用的所有技术。 这里大部分的指南都按如何帮助你快速使用Ember.js来构建一个应用来进行设计。如果你想知道更多Embe

  • 我是JavaFx/并发的新手,所以我在JavaFX中阅读了并发教程,但是我仍然对JavaFX Gui中后台线程的实现有点困惑。 我试图编写一个与一些串行设备(使用JSSC-2.8)接口的小图形用户界面,并根据这些设备的响应更新图形用户界面。但是,在写入消息和设备响应之间有一个延迟,在任意的时间内使用Thread.sleep()对我来说不是一个可靠的编程方式。因此,我想使用并发包中的等待()和通知(

  • 使用map()和一个基本的线程池 # futures_thread_pool_map.py from concurrent import futures import threading import time def task(n): print('{}: sleeping {}'.format( threading.current_thread().name,