async

nestjs 单元测试

﹥>﹥吖頭↗ 提交于 2020-01-04 00:46:06
启动单元测试 zengwe$ npm run test 运行效果 PASS src/admin/controllers/zeng-Try.controller.spec.ts Test Suites: 1 skipped, 14 passed, 14 of 15 total Tests: 7 skipped, 57 passed, 64 total Snapshots: 0 total Time: 7.422s, estimated 10s Ran all test suites related to changed files. Watch Usage: Press w to show more. controller单元测试 import { Body, Controller, Post, Get, Put, Delete, Query } from '@nestjs/common'; import { isNullOrUndefined } from 'util'; import { code } from '../../common/code'; import { zengTryService } from '../services/zeng-Try.service'; import { AddForm, UpdateForm, DeleteForm} from '.

Taro新建项目使用async报错regeneratorRuntime is not defined

久未见 提交于 2020-01-03 23:09:47
当用 Taro 命令 taro init myApp 创建项目的时候,等程序运行结束,进入到 myApp 目录中,执行 npm run dev:weapp 的时候,代码可以正常运行。 但是当我们在代码中用 async/await 的方式写了一些代码之后,就不能正常运行了,报错如下: VM49:1 thirdScriptError regeneratorRuntime is not defined ReferenceError: regeneratorRuntime is not defined 原因就是缺少安装 babel-plugin-transform-runtime 和 babel-runtime 两个依赖。 yarn add babel-plugin-transform-runtime --dev yarn add babel-runtime ⚠️注意:如果是 Taro v1 版本的话,还需要安装 @tarojs/async-await 这个包。升级到 Taro v2 版本后就不需要这个包了。 安装完成之后,需要修改一下 config/index.js 文件: plugins: [ 'transform-decorators-legacy', 'transform-class-properties', 'transform-object-rest-spread', + [

.NET 异步编程

心已入冬 提交于 2020-01-02 05:08:22
计算限制的异步操作 如果CPU的使用率不到100%,表明当前运行的进程没有使用计算机全部计算能力(IO操作时,设备驱动管理器让硬件设备在干活儿,而CPU无事可做),此时可以并行执行计算,提高资源利用率,能显著提高应用程序的吞吐能力。 ThreadPool Task Parallel的静态方法For ,ForEach ,Invoke方法 PLINQ (Parallel LINQ) 定时计算限制操作Timer 1.System.Threading.Timer 2.System.Windows.Forms.Timer 3.System.Windows.Threading.DispatcherTimer 4.Windows.UI.Xaml.DispatcherTimer 5.System.Timers.Timer 本质是System.Threading.Timer的包装类,不建议使用 注意Timer.Change()方法的使用,防止调用时间重叠。 static void DoOneByOne() { Timer timer = null; Random r = new Random(); timer = new Timer(x => { Console.Write(Thread.CurrentThread.ManagedThreadId + " "); Console.WriteLine

ICE学习——异步1

巧了我就是萌 提交于 2020-01-02 05:05:52
ICE 的 AMI 和AMD: AMI :指的是客户端的调用.一般有一个代理类,一个回调类。 从服务端返回的数据在回调类中的ice_response函数中. AMD:指的是服务端对客户端的调用分派.一般进行业务处理需要自己写一个类继承于_Disp类。重载method_async(AMD_CALLBACK __cb,arg1,arg2,...)函数.在这个函数中调用__cb的ice_response(result)往回调类中写result.这样客户端就能够接收到回写的结果 还有一点很有特色的是,AMI和AMD是完全互相独立的,也就是说对于同一个interface,客户端不会知道服务器是否用AMD方式相应请求,服务器端也不会知道客户端是否用AMI发起调用。 而且,他们也无需知道,这是实现的细节,不是接口的契约。 异步方法调用(Asynchronous Method Invocation,简称AMI) 下面这种情况就是AMI调用:“斧头帮”大哥(客户端)叫小弟(服务器端)去干收租的活(远程调用),并且给小弟一把烟花炮竹(回调类)。嘱咐说: “我还有其它事情要打扫打扫,如果你的事情办完了,就放'OK'烟花;如果遇到反抗,就放'斧头'烟花!”(服务器答复)。说完,这位大哥就可以放心的做 其它事去了,直到看到天上烟花盛开,根据"OK"或"斧头"状再作处理。 AMI是针对客户端而言的

.net 4.5 Test Async Task 异步测试

五迷三道 提交于 2020-01-02 05:02:58
using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Windows.Threading; using System.Threading; using System.IO; namespace TestAsyncHttpClient { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial

利用 async & await 的异步编程

被刻印的时光 ゝ 提交于 2020-01-02 05:02:19
利用 async & await 的异步编程 【转载出处】 http://www.cnblogs.com/liqingwen/p/5922573.html    目录 异步编程的简介 异步提高响应能力 更容易编写的 异步方法 异步方法的控制流 (核心) 异步中的线程 async 和 await 修饰符 返回类型和参数信息 命名的约定 一、异步编程的简介   通过使用异步编程,你可以避免性能瓶颈并增强你的应用程序的总体响应能力。   从 VS 2012 开始,新引入了一个简化的方法,称为异步编程。我们在 >= .NET 4.5 中和 Windows 运行时中使用异步, 编译器它会帮助了我们降低了曾经进行的高难度异步代码编写的工作,但逻辑结构却类似于同步代码。 因此,我们仅需要进行一小部分编程的工作就可以获得异步编程的所有优点。 二、异步提高响应能力    异步对可能引起阻塞的活动(如访问 Web 时), 对 Web 资源的访问有时过慢或延迟过高。 若这种任务在同步过程中受阻,则整个应用程序必须等待响应完成。 在使用异步的过程中,我们的应用程序可继续执行不依赖 Web 资源的其他工作,并会一直等待阻塞的任务顺利完成。   这是一些典型的使用异步的应用场景,以及一些在 .NET >= 4.5 后新增的类库。   所有与用户界面相关的操作通常共享一个线程,所以使用异步对于使用 UI 线程的

异步 async & await

一笑奈何 提交于 2020-01-02 05:01:38
1 什么是异步 异步的另外一种含义是计算机多线程的异步处理。与同步处理相对,异步处理不用阻塞当前 线程 来等待处理完成,而是允许后续操作,直至其它线程将处理完成,并回调通知此线程。 2 异步场景 l 不涉及共享资源,或对共享资源只读,即非互斥操作 l 没有时序上的严格关系 l 不需要原子操作,或可以通过其他方式控制原子性 l 常用于IO操作等耗时操作,因为比较影响客户体验和使用性能 l 不影响主线程逻辑 3 异步编写 C# Async await关键字 Async method 三种返回类型 – void (public async void InvokeAsync();) (应仅用于事件处理程序) – Task (pubic async Task InvokeAsync();) – Task<T> (public async Task<string> InvokeAsync();) await 不会开启新的线程,当前线程会一直往下走直到遇到真正的Async方法(比如说HttpClient.GetStringAsync),这个方法的内部会用 Task.Run 或者 Task.Factory.StartNew 去开启线程。也就是如果方法不是.NET为我们提供的Async方法,我们需要 自己创建 Task ,才会真正的去创建线程 。 static void Main(string[]

.Net 4.5 的async 和await 的简单理解使用

谁说胖子不能爱 提交于 2020-01-02 04:51:14
原文地址: http://www.cnblogs.com/HJL-Blog/p/4432632.html 所谓的异步编程是利用CPU空闲时间和多核的特性,它所返回的Task或Task<TResult>是对await的一个承诺,当任务执行完毕后返回一个结果给接收者 方法签名包含一个 Async 或 async 修饰符。 按照约定,异步方法的名称以“Async”后缀结尾。 返回类型为下列类型之一: 如果你的方法有操作数为 TResult 类型的返回语句,则为 Task<TResult> 。 如果你的方法没有返回语句或具有没有操作数的返回语句,则为 Task 。 如果你编写的是异步事件处理程序,则为 Void(Visual Basic 中为 Sub )。 有关详细信息,请参见本主题后面的“返回类型和参数”。 方法通常包含至少一个 await 表达式,该表达式标记一个点,在该点上,直到等待的异步操作完成方法才能继续。 同时,将方法挂起,并且控件返回到方法的调用方。(这里所谓的挂起就是上文所提到的承诺,异步方法承诺会给调用方一个结果) 1 static void Main(string[] args) 2 { 3 Console.WriteLine("主方法开始"); 4 ExeAsync(); 5 Console.WriteLine("主方法结束"); 6 7 Console

C#异步编程学习笔记之-async和await

谁都会走 提交于 2020-01-02 04:50:58
一、异步方法介绍(async和await): 如果使用async修饰符将某种方法指定为异步方法,即启用以下两种功能。 1、标记的异步方法可以使用await来指定暂停点。await运算符通知编译器异步方法:在等待的异步过程完成后才能继续通过该点。 同时,控制返回至异步方法的调用方。 异步方法在await表达式执行时暂停并不构成方法退出,只会导致 finally 代码块不运行。 2、标记的异步方法本身可以通过调用它的方法等待。 注意: ★ 异步方法通常包含await运算符的一个或多个实例,但缺少await表达式也不会导致生成编译器错误(编译器将为此类方法发布一个警告),如: ★ 如果异步方法未使用await运算符标记暂停点,那么异步方法会作为同步方法执行,即使有async修饰符,也不例外。 二、异步方法示例: 使用async关键字定义的异步方法简称为“异步方法”,如: async Task<int> AccessTheWebAsync() { HttpClient client = new HttpClient(); //耗时处理,需要异步执行 Task<string> getStringTask = client.GetStringAsync("http://msdn.microsoft.com"); //这里是不需要异步执行的内容 DoIndependentWork(); /

关于Async与Await的FAQ

落花浮王杯 提交于 2020-01-02 04:50:14
  本人是从.NET4.0刚出的时候接触的.NET环境,所以学的东西就是4.0及其之前的。时代飞速前进,目测5.0也快出了吧,但一直也没去接受新的技术。最近由于要学习Web API,快看完了,却发现4.5已经大行其道了,于是又进行补脑。async与await便是其中之一:   这是两个关键字,用于异步编程。我们传统的异步编程方式一般是Thread、ThreadPool、BeginXXX、EndXXX等等。把调用、回调分开来,代码的逻辑是有跳跃的,于是会导致思路不是很清晰的问题,在.NET 4.5中,新推出的async、await关键字,可以帮助我们像写同步方法一样去写异步方法(保证代码的整齐清晰)。   先来看个传统同步方法例子: 1 static void Main(string[] args) 2 { 3 // 同步方式 4 Console.WriteLine("同步方式测试开始!"); 5 SyncMethod(0); 6 Console.WriteLine("同步方式结束!"); 7 Console.ReadKey(); 8 } 9 10 // 同步操作 11 private static void SyncMethod(int input) 12 { 13 Console.WriteLine("进入同步操作!"); 14 var result = SyancWork