首页 > 解决方案 > 嵌套函数参数从何而来?

问题描述

在下面的代码中,参数chapters是从哪里来的?同样的问题error,它来自哪里?我会说它们是从函数传递过来的getChapters(),还有error,但我怎么知道呢?我如何从调试器中看到getChapters返回的值是什么?

player.getChapters().then(function(chapters) {
    // chapters = an array of chapters objects
}).catch(function(error) {
    // error
});

标签: javascriptfunction

解决方案


getChapters()返回一个承诺。当 Promise 解决或拒绝时,将传递一个值,.then然后.catch回调接收:

  new Promise(function(resolve, reject) {
    resolve("this value goes in");
  }).then(function(value) {
    // value === "this value goes in"
  })

从调试器中,getChapters()执行时您无法知道这些值,因为通常resolve稍后会调用,因此该值尚不知道,并且返回值是待处理的 Promise。但是,当您在回调中放置断点时,您可以看到chapters并且您还会在 Promise 的内部插槽之一中找到该值。


推荐阅读