在我的程序中async,我从另一个API模块调用我的函数:
var info = await api.MyRequest(value);
Run Code Online (Sandbox Code Playgroud)
模块代码:
var request = require("request")
module.exports.MyRequest = async function MyRequest(value) {
var options = {
uri: "http://some_url",
method: "GET",
qs: { // Query string like ?key=value&...
key : value
},
json: true
}
try {
var result = await request(options);
return result;
} catch (err) {
console.error(err);
}
}
Run Code Online (Sandbox Code Playgroud)
执行立即返回,但是result,并因此info包含请求对象和请求体- info.body样key=value&...,不需要响应体.
我做错了什么?怎么修?什么是正确的request用法async,或者它只适用于这里提到的promises:为什么await不适用于节点请求模块?下面的文章提到了:在Node.js中掌握Async Await.
我有以下的打字稿,我想用async/ await上.但我似乎无法在脑海中解决这个问题.
private getWorkbookFromFile2(excelFile: File): Promise<xlsx.IWorkBook> {
var loadedPromise = new Promise<xlsx.IWorkBook>((resolve, reject) => {
var reader = new FileReader();
reader.onload = (event: any) => {
var data = event.target.result;
var workbook = xlsx.read(data, { type: 'binary' });
console.log(workbook.SheetNames);
resolve(workbook);
};
reader.readAsBinaryString(excelFile);
});
return loadedPromise;
}
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我这个Typescript承诺如何转换为使用async/await
async-await ×2
asynchronous ×1
es6-promise ×1
node.js ×1
promise ×1
request ×1
rest ×1
typescript ×1