Javascript从嵌套函数

时间:2018-06-17 20:58:38

标签: javascript function nested return

我有一个函数insde一个函数,我试图返回我在内部函数中返回的东西。

function calculatePoints(){
      request({
        success: onWiktionaryResponseAvailable,
        error: null,
        url: "https://en.wiktionary.org/w/api.php?action=query&origin=*&format=json&titles="+inputWord,
      });
      function onWiktionaryResponseAvailable(result){
        let wiktionaryEntry = JSON.parse(result),
          keys = Object.keys(wiktionaryEntry.query.pages);
          if (keys[0] === "-1"){
            return 0;
          }return inputWord.length;
      }
    }

我试过写:return onWiktionaryResponsAvailable();但这在我的情况下不起作用。

1 个答案:

答案 0 :(得分:0)

当你拨打request时,你已经知道了“回调”功能。您只需要更进一步,并传入回调函数。 (你也可以用Promise完成同样的事情)

function calculatePoints(callback) {
  request({
    success: onWiktionaryResponseAvailable,
    error: null,
    url: "https://en.wiktionary.org/w/api.php?action=query&origin=*&format=json&titles=" + inputWord,
  });
  function onWiktionaryResponseAvailable(result) {
    let wiktionaryEntry = JSON.parse(result),
      keys = Object.keys(wiktionaryEntry.query.pages);
    if (keys[0] === "-1") callback(0);
    callback(inputWord.length);
  }
}