How to resolve the Syntax error : await is only valid in async function?(如何解决语法错误:等待仅在异步函数中有效?)
本文介绍了如何解决语法错误:等待仅在异步函数中有效?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经编写了使用Promise从异步调用返回一些数据的代码。当我尝试执行时,我得到"语法错误等待仅在异步函数中有效",并且我还得到不能代理应用程序请求.错误:CONNECT ECONNREFUSED。
我不确定为什么会出现这些错误
我在函数调用之前尝试使用异步,但不起作用
var http = require('https');
var httpGet = function(url) {
return new Promise (function(resolve, reject) {
http.get(url,function(res) {
res.setEncoding('utf8');
var body = '';
res.on('data', function(chunk){
body += chunk;
console.log("The body is "+ body);
});
res.on('end',function(){resolve(body);});
}).on('error', reject);
});
};
var body = await httpGet('link');
$.response.setBody(body);
我希望变量Body具有从httpGet函数返回的数据。现在我收到了上面提到的错误。但是如果不使用AWAIT,我会得到Body的值为‘{}’。
请帮助
推荐答案
await
只能在标记为async
的函数中调用。
因此,您可以创建async IIFE
并从那里调用httpGet
。
(async function(){
var body = await httpGet('link');
$.response.setBody(body);
})()
基本上,当您使用一个asynchronous
操作时,您还需要使整个流程异步。因此async
类关键字使用ES6生成器函数并使其返回承诺。
如果您有念力,可以结账this。
这篇关于如何解决语法错误:等待仅在异步函数中有效?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何解决语法错误:等待仅在异步函数中有效?


猜你喜欢
- 为什么悬停在委托事件处理程序中不起作用? 2022-01-01
- 我不能使用 json 使用 react 向我的 web api 发出 Post 请求 2022-01-01
- 如何显示带有换行符的文本标签? 2022-01-01
- 是否可以将标志传递给 Gulp 以使其以不同的方式 2022-01-01
- 为什么我的页面无法在 Github 上加载? 2022-01-01
- 如何调试 CSS/Javascript 悬停问题 2022-01-01
- 如何向 ipc 渲染器发送添加回调 2022-01-01
- 使用 iframe URL 的 jQuery UI 对话框 2022-01-01
- 在不使用循环的情况下查找数字数组中的一项 2022-01-01
- 从原点悬停时触发 translateY() 2022-01-01