JavaScript 避免同步地调用异步函数的回调函数

var saveFile ={};

function asyncFn(path, say){ //回周函数say 既可以被同步调用,也可以被异步调用,这很难判断结果
    if(savaFile[path]){
        say('文件保存成功'); //这里,同步的调用了 say
        return ;
    }
    saveFile[path] = require('fs').readFile(path,say('文件保存成功'));
}

asyncFn('./abc.js',function(x){console.log(x)}); //这个函数的回调函数可能同步执行也可能异步执行
console.log('开始保存文件')//如果已经存在,则这个输入不符合预期。

//为了符合预期,必须让回调函数都异步延迟执行

你可能感兴趣的:(JavaScript编程)