如何访问一个承诺的价值?价值

2023-09-14 23:07:27 作者:猫有九命唯有一心丶

我期待从角的文档这个例子 $ Q 但我认为这可能适用于承诺一般。他们有这样的例子:

I'm looking at this example from Angular's docs for $q but I think this probably applies to promises in general. They have this example:

promiseB = promiseA.then(function(result) {
  return result + 1;
});

// promiseB will be resolved immediately after promiseA is resolved and its value
// will be the result of promiseA incremented by 1

但我不清楚这是如何工作。如果我写。然后()上的结果,第一个。然后(),链接它们,这是我知道我可以,那么 promiseB 是一个承诺的对象类型,对象。这不是一个编号。那么他们怎么用,其价值将promiseA的加1的结果是什么意思?

But I'm not clear how this works. If I could write .then() on the result of the first .then(), chaining them, which I know I can, then promiseB is a promise object, of type Object. It is not a Number. So what do they mean by "its value will be the result of promiseA incremented by 1"?

我应该访问为 promiseB.value 或类似的东西?成功回调如何可以返回一个承诺并返回结果+ 1?我失去了一些东西。

Am I supposed to access that as promiseB.value or something like that? How can the success callback return a promise AND return "result + 1"? I'm missing something.

推荐答案

promiseA 然后函数返回一个新希望( promiseB ),它在 promiseA 立即解决的问题是解决了,它的价值是什么是返回的值从 promiseA 中成功的功能。

promiseA's then function returns a new promise (promiseB) that is immediately resolved after promiseA is resolved, its value is the value of the what is returned from the success function within promiseA.

在这种情况下, promiseA 与价值解析 - 结果,然后立即解析 promiseB 与值结果+ 1

In this case promiseA is resolved with a value - result and then immediately resolves promiseB with the value of result + 1.

访问 promiseB 在我们访问的结果 promiseA 以相同的方式完成的。

Accessing the value of promiseB is done in the same way we accessed the result of promiseA.

promiseB.then(function(result) {
    // here you can use the result of promiseB
});