promise 使用的回调函数返回什么?[复制]

What do the callback functions used by a promise return? [duplicate]

提问人:Benilda Key 提问时间:11/10/2023 最后编辑:Benilda Key 更新时间:11/10/2023 访问量:37

问:

我正在尝试弄清楚 JavaScript 承诺。我已经阅读了多个关于这个主题的文档,包括 PromiseUsing promises。也许我遗漏了一些明显的东西,但我找不到以下问题的答案。届时使用的回调函数和 catch 返回什么?

这些信息在这些页面的任何地方都没有明确说明。

以下代码示例来自“使用 promises”页。

createAudioFileAsync(audioSettings).then(successCallback, failureCallback);

如果我的问题在该页面上得到回答,那么在此代码示例附近会有类似于以下内容的句子。

successCallback是返回 {answer to question} 的方法。然而,在这两页上都找不到这样的句子。

以下段落没有回答这个问题。

Promise.prototype.then() 方法、Promise.prototype.catch() 和 Promise.prototype.finally() 用于 将进一步行动与承诺相关联 安定下来。由于这些方法返回 promise, 它们可以被链接起来。

这段话说 Promise.prototype.then()、Promise.prototype.catch() 和 Promise.prototype.finally() 方法本身“返回 promise”。它没有提到回调方法。

“常见错误”部分中的以下注释表明该方法应该返回 Promise。successCallback

// Forgot to return promise from inner chain + unnecessary nesting

但同一页面中的其他信息似乎与此相矛盾。

请考虑以下代码块。

const listOfIngredients = [];
doSomething()
  .then((url) => fetch(url))
  .then((res) => res.json())
  .then((data) => {
    listOfIngredients.push(data);
  })
  .then(() => {
    console.log(listOfIngredients);
  }); 

一些成功回调具有明确的返回,即使用箭头函数的回调,但其他回调似乎没有返回任何内容。

具有不同情况的示例示例只会增加混乱。该方法显然返回一个 Promise,但该方法返回其他内容。如果我的问题的答案是它返回一个 Promise,那么“return { value, isOdd };”与返回 Promise 有什么不同?promiseGetWorddetermineParity

JavaScript 承诺

评论


答: 暂无答案