【发布时间】:2019-07-13 20:07:54
【问题描述】:
我是 JS 新手,想了解 Promise 是 JS。到目前为止,我知道 Promise 不是异步的,也就是说,正如您在下面的代码中看到的那样 new Promise( function ( ) { console.log( 'b' ); setTimeout( function ( ) { console.log( 'D' ); }, 0 ); } ); 当返回 promise 对象时,只有 setTimeOut 异步执行,promise 充当该 setTimeOut 的包装器。问题是为什么需要将 setTimeOut 之类的异步代码包装在 promise 中,或者在 promise 中使用 XHR 对象完成的 Ajax 请求。
【问题讨论】:
-
由于所显示的承诺从未得到解决,因此该示例不是一个好示例。还承诺 是 异步的,因此您对此的理解不正确
-
@charlieftl 我刚刚在他的上一个问题中告诉 OP 的相反 :)
-
@charlieftl 我不需要示例,我知道规范(所有相关部分)。我认为初学者更容易理解,如果我们说 Promise 不是异步的,而是它们是异步调用的回调的包装器。如果您阅读了 OPs 上一个问题,您就会明白其中的原因
-
@charlietfl,谢谢你的cmets,请你看一下这个promise据说是同步的stackoverflow.com/questions/36588775/…
-
@JonasWilms 猜你告诉他们它执行的代码是同步的,这是有道理的......正如 op 所说,它是模糊的
标签: javascript