promise 如何使代码异步?

Ami*_*ner 2 javascript asynchronous node.js promise

我知道我们都使用 promise 来避免函数回调地狱,但我的问题是 promise 代码在事件循环中的哪个位置运行以及代码是否真的是异步的。

我的意思是,这段代码是否只是因为它在 promise 中运行而异步?或者承诺不是事件循环的一部分?

const p = new Promise((resolve,reject) =>{

  resolve('am i part of the event loop ?  , am i a diffrent thread ? or am i synchronized? ')

})
Run Code Online (Sandbox Code Playgroud)

Que*_*tin 5

promise 如何使代码异步?

它没有。

promise 提供了一个标准接口(例如,使用.then()方法)来处理异步函数。

如果在 Promise 中所做的一切都是非异步的,那么代码仍然是非异步的。

const p = new Promise((resolve, reject) => {
  console.log(1);
  resolve();
  console.log(2);

});
console.log(3);
Run Code Online (Sandbox Code Playgroud)

您可以在上面看到 Promise 就像任何其他非异步代码一样正在阻塞。

  • 呃,有点复杂的是 `.then()` 处理程序总是被异步调用。也许值得澄清这一点。 (3认同)