相关疑难解决方法(0)

承诺的身体什么时候被执行?

假设我有以下内容Promise:

function doSomethingAsynchronous() {
  return new Promise((resolve) => {
    const result = doSomeWork();

    setTimeout(() => {
      resolve(result);
   }), 100);
  });
}
Run Code Online (Sandbox Code Playgroud)

在什么时候被doSomeWork()称为?它Promise是在建造之后立即建造的吗?如果没有,是否还有一些我需要明确做的事情来确保Promise运行的主体?

javascript promise ecmascript-6 es6-promise

40
推荐指数
4
解决办法
1万
查看次数

async /等待本机实现

该提议建议async功能可以使用发动机功能,虽然我在ES2017规范中找不到这方面的确认.

此外,当发电机在原型铬/ Node.js的变得一团糟,async似乎功能不受到影响,这表明GeneratorFunction不使用AsyncFunction,至少直接:

Object.getPrototypeOf((function * () {}).prototype).next = null;

(async () => {
    return await Promise.resolve(1);
})()
.then(console.log);
Run Code Online (Sandbox Code Playgroud)

为什么说async/ await现有的本地实现的工作?

这些实现是否比Promise使用提案建议的/ generator函数方法更高效,并且通常在Babel和TypeScript中实现?

javascript async-await ecmascript-2017

17
推荐指数
1
解决办法
2688
查看次数

在Promises中解决Promise的顺序

对于以下代码

function inner () {
  new Promise(function(resolve,reject){
    resolve()
  }).then(function(){
    console.log('Inner Promise')
  })
}
function outer() {
  return new Promise(function(resolve, reject){
    resolve()
    inner()
  })
}

outer().then(function(data) {
  console.log('Outer Promise')
})
Run Code Online (Sandbox Code Playgroud)

输出是

Inner Promise
Outer Promise
Run Code Online (Sandbox Code Playgroud)

我认为外部决心将是第一个进入JS Message Queue,然后是内部解析.然而,JS事件循环首先触发内部解析,然后是外部解析.

Promise在内部解决了什么?

javascript promise

2
推荐指数
1
解决办法
1863
查看次数