zoukankan      html  css  js  c++  java
  • async generator promise异步方案实际运用

    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

  • 相关阅读:
    03、CPU主频,和性能
    02、计算机组成原理相关知识
    常用正则表达式,手机号、固话号、身份证号等
    01、计算机原理结构,及冯诺依曼体系结构
    7-7 Complete Binary Search Tree (30分) 完全二叉搜索树
    7-2 Reversing Linked List (25分)
    7-1 Maximum Subsequence Sum (25分)
    6-17 Shortest Path [4] (25分)
    6-16 Shortest Path [3] (25分)
    6-15 Iterative Mergesort (25分)
  • 原文地址:https://www.cnblogs.com/leee/p/7096119.html
Copyright © 2011-2022 走看看