在使用显式和隐式返回之间返回函数的区别

时间:2018-07-23 01:14:18

标签: javascript node.js

我有一个可以在Node应用程序中工作的javascript代码段。路由使用下面定义为数据库层的db_location。

const db_location = {
  getLocations:() =>
    fetch(`${p_conf.SERVER_URL}/parse` + '/classes/GCUR_LOCATION', { method: 'GET', headers: {
        'X-Parse-Application-Id': 'APPLICATION_ID',
        'X-Parse-REST-API-Key': 'restAPIKey'
    }}).then(res1 => res1.json())
};
module.exports = db_location

db_location定义了一个getLocations函数,该函数使用隐式返回。但是,如果我将其转换为传统的显式收益,它将不再起作用。

const db_location = {
  getLocations: function() {
    fetch(`${p_conf.SERVER_URL}/parse` + '/classes/GCUR_LOCATION', { method: 'GET', headers: {
        'X-Parse-Application-Id': 'APPLICATION_ID',
        'X-Parse-REST-API-Key': 'restAPIKey'
    }}).then(res1 => res1.json())
  }
};
module.exports = db_location

我很难理解这种转换是否可以转换以及显式收益与隐式收益如何不同?

1 个答案:

答案 0 :(得分:3)

底部代码中没有任何明确的返回值; getLocations当前返回undefined。更改为:

const db_location = {
  getLocations: function() {
    return fetch(`${p_conf.SERVER_URL}/parse` ...

以便返回承诺链。