解决异步的方案---回调函数

栏目: JavaScript · 发布时间: 6年前

内容简介:需要name和age都获取到然后输出。
  • 异步没法捕获错误,异步代码不能try catch捕获
  • 异步编程中可能出现回调地狱
  • 多个异步的操作 在同一个时间内容 同步异步的结果

高阶函数

  • 函数作为函数的参数
  • 函数执行结果返回函数

after函数(在xxx之后执行,可以限制达到多少次后执行此回调)

function after(times,cb){
        return function(){
            if(--times==0){
                cb()
            }
        }
    }
    
    let fn = after(3,function(){
        console.log('达到三次了')
    })
    
    fn()
    fn()
    fn()
复制代码

node文件操作

需要name和age都获取到然后输出。

let fs = require('fs')
    let schoolInfo = {}
    function after(times,cb){
        return function(){
            if(--times==0){
                cb()
            }
        }
    }
    let fn = after(2,function(){
        consolr.log(schoolInfo)
    })
    fs.readFile('./name.txt','utf8',function(err,data){
        schoolInfo['name'] = data;
        fn()
    })
    
    fs.readFile('./age.txt','utf8',function(err,data){
       schoolInfo['age'] = data;
       fn()
    })
复制代码

发布订阅

let dep = {
        arr:[],
        emit(){
            this.arr.forEach(fn=>fn())
        }
        on(fn){
            this.arr.push(fn)
        }
    }
    dep.on(function(){
        if(Object.keys(schoolInfo).length===2){
            console.log(schoolInfo)
        }
    })
    fs.readFile('./name.txt','utf8',function(err,data){
        schoolInfo['name'] = data;
        dep.emit()
    })
    
    fs.readFile('./age.txt','utf8',function(err,data){
       schoolInfo['age'] = data;
       dep.emit()
    })
复制代码

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

GWT in Action

GWT in Action

Robert Hanson、Adam Tacy / Manning Publications / 2007-06-05 / USD 49.99

This book will show Java developers how to use the Google Web Toolkit (GWT) to rapidly create rich web-based applications using their existing skills. It will cover the full development cycle, from ......一起来看看 《GWT in Action》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具