我对被抛出的不同术语感到困惑.根据我的理解,承诺可以是:
fulfilled
rejected
pending
settled
resolved
defer
Run Code Online (Sandbox Code Playgroud)
解决意味着解决了吗?还是意味着它实现了?什么是推迟的?
我理解Promise存在于以下三种状态之一:Promise可以是待处理(未解析),履行(成功解决)或拒绝(解决失败).
阅读A + Promise Spec和MDN的文档,我很困惑他们都承认已完成和被拒绝的状态,但在Promise构造函数的定义中,他们指定了两个回调:resolve和reject.我们似乎可以互换地使用这两个术语; 他们不是.
并不意味着成功:
re·solve /r??zälv/ verb
1. settle or find a solution to (a problem, dispute, or contentious matter).
Run Code Online (Sandbox Code Playgroud)
是否意味着成功:
ful·fill /fo?ol?fil/ verb
1. bring to completion or reality; achieve or realize (something desired, promised, or predicted).
2. carry out (a task, duty, or role) as required, pledged, or expected.
Run Code Online (Sandbox Code Playgroud)
当我们真正实现承诺时,为什么我们在这里使用决心?有没有在其中的价值,我们通过一个实例解决可能会导致无极是拒绝 …
目前登录node、chrome、firefox的如下Yahtzee。
正如你所看到的,连 Promise 的原型都还没有确定。
const fake = new Number(1)
fake.then = fn => setTimeout(fn, 0, 'Yahtzee')
const main = async () => {
console.log(await fake)
}
main()Run Code Online (Sandbox Code Playgroud)
这是否普遍有效?更重要的是,这种行为可能会持续下去吗?