我正在尝试将一些名为api.js
的文件中的函数导出到另一个带有NodeJS的文件中。这些函数是异步的,因为它们是http请求。我正在尝试使用await/async
个关键字。但是,我似乎无法让它发挥作用。我的代码如下。
//api.js
import request from 'request';
const baseRequest = request.defaults({
method: 'GET',
headers: {…}
});
export const api = {
async getDeviceByID(deviceID) {
return await new Promise((resolve, reject) => {
baseRequest(`…/${deviceID}`, (err, res, body) => {
if (err !== null) return reject(err);
let json = JSON.parse(body);
resolve(json);
});
});
},
async getDevices() {
return await new Promise((resolve, reject) => {
baseRequest(`…`, (err, res, body) => {
if (err !== null) return reject(err);
let json = JSON.parse(body);
resolve(json);
});
});
}
};
我在这个文件中调用了api.getDeviceByID。但是,它将请求对象作为promise的结果返回,而不是来自http请求的有效负载。我很确定我只是在错误的地方回来了。有关代码改进的任何建议都表示赞赏。
//device.js
import { api } from './api';
api.getDeviceByID(this.deviceID).then((response) => {
console.log(response);
});
.
.
.
我将react 15.5.4
与react-scripts 1.0.7
一起使用。
Mac OS X 10.12.5
node v7.2.1