异步模块功能不起作用
我是node.js的新手,正在面临await / async函数的问题。这是我的文件:
main.js
var fd = require('fdmodule');
let r = await fd.matches();
console.log('r: ' + r);
fdmodule.js
const baseUrl = '/';
const token = '*********';
const https = require('https');
exports.matches = async function () {
return new Promise(function (resolve, reject) {
let x = await callUrl(baseUrl + 'matches');
console.log('x: ' + x);
resolve(x);
});
};
async function callUrl(url) {
return new Promise(function (resolve, reject) {
var req = require('request');
var header = { headers: { 'X-Auth-Token': token } };
req(url, header, function (error, response, body) {
if (!error && response.statusCode == 200) {
resolve(body);
} else {
reject(error);
}
});
});
}
这是我的输出:
let r = await fd.matches();
^^^^^
SyntaxError: await is only valid in async function
当我删除此行的await
并将功能更改为]时>
exports.matches = function () { let x = await callUrl(baseUrl + 'matches'); console.log('x: ' + x); return x; };
我得到了
console.log('x: ' + x);
结果,但只有在console.log('r: ' + r);
明显为空之后。
我在做什么错?
我是node.js的新手,正在面临await / async函数的问题。这是我的文件:main.js var fd = require('fdmodule');让r =等待fd.matches(); console.log('r:'+ r); fdmodule.js const ...
回答如下:我整理出来。这是文件: