let p = new Promise(
r=>{
console.log("rrr");
r("ok")
}
)
上面代码,会执行console.log,这个应该没问题
如果加了下面的代码,不是应该再执行一次console.log吗?不明白了。。
p.then(
r=>{
console.log(r);
}
)
ps,修改问题:不好意思,表达的非常不清楚 之前一直以为new Promsie(...)内部的同步代码会被执行两次,new Promise()的时候一次, p().then(...)的时候执行一次
没什么难理解的,你变量
p
这个Promise
的resolve
在你定义的那一刻已经触发了,你的then
什么时候调用已经跟这个resolve
无关,并不会再次执行函数内的代码去触发console.log
你只有这样写
每次返回都是新的
Promise
了,才能每次都触发p
里面的console.log