Discuss / JavaScript / Promise对象是new出来之后就立即执行异步方法了吗?为什么不用专门有个start方法来启动异步方法的执行?

Promise对象是new出来之后就立即执行异步方法了吗?为什么不用专门有个start方法来启动异步方法的执行?

Topic source

wangfenhao18

#1 Created at ... [Delete] [Delete and Lock User]

可不可能promise对象在new出来之后到调用then()方法之前的这段时间内,异步方法就已经执行结束了?如果可能的话,这段时间里调用resolve方法岂不是会报错(因为还没来得及调用then()方法而未得到赋值)?

Swiftyxy13

#2 Created at ... [Delete] [Delete and Lock User]

Promise结果会缓下来,比如看下面这段代码

var promise = Promise.resolve(5); // already resolved here

setTimeout(function () { promise.then(function (x) { console.log(x); // still logs 5 }); }, 1000);

详细可看 https://stackoverflow.com/q/42193985


  • 1

Reply