es7 async方案


/******************async***********************/
var timeFn=function(time){
return new Promise(function(resolve,reject){
setTimeout(function(){
console.log(2)
resolve(3);
},time)
})
} var asyncFn=async function (){
console.log(1)
var parm=await timeFn(5000);
console.log(parm)
console.log(4)
}
asyncFn()

generator方案

/******************generator***********************/
var timeFn=function(time){
return new Promise(function(resolve,reject){
setTimeout(function(){
console.log(2)
resolve(3);
},time)
})
} var genFn=function * (){
console.log(1)
var parm=yield timeFn(5000);
console.log(parm)
console.log(4)
}
asyncFn()

promise方案

/******************promise***********************/
var timeFn=function(time){
return new Promise(function(resolve,reject){
setTimeout(function(){
console.log(2)
resolve(3);
},time)
})
} console.log(1)
timeFn(5000).then(function(parm){
console.log(parm)
console.log(4)
})

产品的需求

工作中的异步实用场景

ended 是音频播放完毕事件 btnText 是按钮文案

使用knockout库

        self.timer = ko.observable(3);
self.focusChoice.subscribe((newVal)=>{
if (newVal == '单词') {
self.timer(3)
} else {
self.timer(5)
}
})
self.btnText = ko.observable(`提交`)
self.disabled = ko.observable(false);
self.ended = async ()=> {
console.log(1)
self.btnText(`${self.timer()}秒后可以提交`)
console.log(2)
await self.promiseTime();
console.log(3)
self.btnText('提交')
console.log(4)
} self.promiseTime = ()=> {
return new Promise((resolve)=> {
setTimeout(() => {
self.disabled(true);
resolve();
}, self.timer() * 1000)
})
}

gif

async generator promise异步方案实际运用的更多相关文章

  1. 【ES6】Generator+Promise异步编程

    一.概念 首先我们要理解Generator和Promise的概念. Generator:意思是生成器,可以在函数内部通过yeild来控制语句的执行或暂停状态. *Foo(){ yeild consol ...

  2. async和await对promise异步方案的改进,以及使用注意事项

    async.await相比原生promise的有优势: 1.更加简洁,await一个promise即可,那么会自动返回这个promise的resolve值,无需在then函数的回调中手动取值,彻底解决 ...

  3. 异步编程的上下文与操作符--await/async generator/yield

    上下文的保存机制: 1.保存到异步类型中:promise & future & closure & observable: 2.栈帧保存:其它保存机制: 3.保存到服务提供方的 ...

  4. Generator函数异步应用

    转载请注明出处: Generator函数异步应用 上一篇文章详细的介绍了Generator函数的语法,这篇文章来说一下如何使用Generator函数来实现异步编程. 或许用Generator函数来实现 ...

  5. [.NET] 利用 async & await 进行异步 IO 操作

    利用 async & await 进行异步 IO 操作 [博主]反骨仔 [出处]http://www.cnblogs.com/liqingwen/p/6082673.html  序 上次,博主 ...

  6. 【JavaScript】 使用Async 和 Promise 完美解决回调地狱

    很久以前就学习过Async和Promise,但总是一知半解的. 今天在写NodeJS的时候,发现好多第三方库使用回调,这样在实际操作中会出现多重回调,这就是传说中的JS回调地狱. 举个例子 有一个方法 ...

  7. 理解koa2 之 async + await + promise

    koa是下一代的Node.js web框架. 我们首先使用koa来实现一个简单的hello world吧!假如目前的项目结构如下: ### 目录结构如下: koa-demo1 # 工程名 | |--- ...

  8. async+await处理异步问题

    在编写网页的时候我们常常会遇到异步问题,async+await是es6提出的解决异步的方法,下面我们来看看这个方法怎么实现解决异步的, 大家都知道,setTimeout是一个定时器.他是一个异步执行的 ...

  9. async await promise 执行时序

    先用一个例子来说明async await promise的执行顺序 console.log('start'); async function test(){ console.log('111'); a ...

随机推荐

  1. 左连接条件与where条件的区别

    Sql 查询语句应用左连接时的链接条件中经常加一些常量值在里面如: "On a.id= b.id and b.is_del =0 and b.is_old =1" 这种条件如果加在 ...

  2. python基础 数据类型 判断语句

    python 类unix系统默认已经安装或使用源码包./confighuremakemake install python运行方法 通过交互式解释器 [root@room1pc01 ~]# pytho ...

  3. Jenkins+Gradle实现android开发持续集成、打包

    Jenkins简介 Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上.同时 Jenkins 能实施监控集成中存在的错误, ...

  4. 基于LDA的Topic Model变形

    转载于: 转:基于LDA的Topic Model变形 最近有想用LDA理论的变形来解决问题,调研中.... 基于LDA的Topic Model变形 基于LDA的Topic Model变形最近几年来,随 ...

  5. HI3531的nand flash测试

    void NAND_Init() {    *(unsigned int *)(0x20030000 + 0xd0) = 7; delay_x(0X5000);    *(unsigned int * ...

  6. 一些常用的api接口、

    taobao ip地址的api http://ip.taobao.com/service/getIpInfo.php?ip=IP 返回参数 code 状态码 data 数据信息 country 国家  ...

  7. org.hibernate.TransientObjectException:The given object has a null identifier

    1.错误描述 org.hibernate.TransientObjectException:The given object has a null identifier:com.you.model.U ...

  8. IOS开发之XCode学习010:定时器和视图对象

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能: 1.通过点击"启动定时器"按钮 ...

  9. hdu5820 Lights

    主席树 但是能够想到题解的做法很难 #include <stdio.h> #include <string.h> #include <vector> #includ ...

  10. Gadgets for dollars and pounds CodeForces - 609D

    Nura wants to buy k gadgets. She has only sburles for that. She can buy each gadget for dollars or f ...