promise存在的原因
promise是异步问题的统一解决方案,在promise出来之前,解决异步只能用回调,回调的层级多了书写和读代码多多少少有点地狱模式,当时回调的参数名也不统一,有的叫success,done;有的叫success,fail,有的失败的回调在前,便于规范统一,于是有了promise
promise原理
要怎么拿到异步结果(随机数)呢
const p1 = function () {
setTimeout(() => {
parseInt(Math.random() * 80 + 1);
}, 2000)
return undefined;
};
很简单给异步结果传一个回调,将结果作为参数传给函数不就行了吗,是不是很机智
const fn = function (result) {
console.log(result); // 生成的随机数
};
const p1 = function (fn) {
fn(
setTimeout(() => {
parseInt(Math.random() * 80 + 1);
}, 2000)
);
return undefined;
};
console.log(p1(fn)); //undefined
那既然这个p1可以接受一个参数(回调)那为什么不给他传两个参数(回调)呢,一个成功的执行一个失败执行,是不是就很接近promise了
网友评论