首页 > 代码库 > 关于defer.promise.then 异步的一个疑问
关于defer.promise.then 异步的一个疑问
疑问:感觉会报错,因为执行到defer.promise.then这时候还没到defer.resolve,因为异步读文件,总归会慢
解答:先执行defer.promise.then,是给callback赋值,函数的赋值会比较抽象,callback得到函数的赋值后,是函数就该等待执行,等待resolve的时候,执行,其实也是回调的方式,
关键点:实参是函数,就是形参被复值成函数,把形参当函数看
var Defer = function(){ var value,callback; return { resolve :function(val){ value = val; callback(val); }, promise:{ then:function(fn){ callback = fn; } } } } var fs = require(‘fs‘); var defer = new Defer(); fs.readFile(‘data/account/accountInfo_0.html‘,(err,data)=>{ console.log(2) defer.resolve(data) }) console.log(1) defer.promise.then(function(resData){ console.log(3) console.log(resData) });
关于defer.promise.then 异步的一个疑问
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。