请问下面的样例代码中,resolve,reject这俩函数的定义在哪?newPromise(function(resolve,reject){log('startnewPromise...');vartimeOut=Math.random()*2;log('settimeoutto:'+timeOut+'seconds.');setTimeout(function(){if(timeOut
2 回答
慕的地10843
TA贡献1785条经验 获得超8个赞
首先你得知道,javascript函数中的参数可以是一个函数,比如:functiona(arg){console.log(arg)}functionb(fn){fn('a');}b(a);//打印a另外,javascript中的函数不一定是定义的,可能是生成的,比如:functiongetfn(arg){returnfunction(){console.log(arg);}}vargeta=getfn('a');geta();//打印a再来看你的问题newPromise(function(resolve,reject){//....})这样理解Promise的构造函数需要传一个参数fn,这个参数类型必须是'function'构造函数会执行这个fn,并传两个参数给fn(a,b),这两个参数的类型也是'function'用代码理解大概是这个样子:classPromise{constructor(fn){this.init()varresolve=this.get_resolve();//functionvarreject=this.get_reject();//functionfn(resolve,reject);}...}最后回答你的问题:resolve,reject是在Promise实例化时在构造函数中生成的。。
添加回答
举报
0/150
提交
取消