ES6 Promise的问题
function runAsync(callback){
setTimeout(function(){
console.log('111');
callback('222');
}, 2000);
}
runAsync(function(data){
console.log(data);
});
刚接触这个 请问 callback('222')这行代码是什么意思 ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
2000
毫秒后打印出111
并调用传进来的callback
函数,传入实参222
这不是
Promise
,是回调。运行结果如下:
回调函数。
因为异步使你无法得到逐行自上而下运行代码的结果,异步任务会使当前作用域的同步任务执行完才执行异步的结果。
就像你定了一份外卖,是无法立即送达的,而你又要事先填好收货地址(否则你永远拿不到外卖,而这个callback,就是你订外卖的收货地址)。
Promise是异步中的微任务(跟你这个例子没什么关系),而你这里的setTimeout是一个异步中的宏任务。
类似模拟Promise返回数据,平时mock数据时可以用,加上定时器实际是模拟ajax请求后端数据的延时。
这个函数里面的回调函数可以返回data,此data即是你mock的数据,比如你按照接口协议返回的数据是
在
runAsync
中返回的data可以用.then(res => {/res即data值,其他后续逻辑在此处完成/})