Javascript 将ajax结果作为变量与async/await一起使用
我想在openFastLink函数中使用getAccessToken()的结果,但是函数没有等待检索令牌,因为JS是异步的。我不能使用回调,因为openFastlink函数是一个弹出窗口,必须直接绑定到按钮,以防止浏览器阻止它。访问令牌也必须在与openFastlink相同的单击事件中检索,这是一项要求,我希望避免使ajax调用与“async:false”同步 我现在尝试使用下面的Async/await,但是openFastLink函数仍然没有等待getAccessToken()导致错误。我是Js的新手,因此,如果您能在满足需求的情况下帮助我解决这个问题,我将不胜感激Javascript 将ajax结果作为变量与async/await一起使用,javascript,jquery,ajax,Javascript,Jquery,Ajax,我想在openFastLink函数中使用getAccessToken()的结果,但是函数没有等待检索令牌,因为JS是异步的。我不能使用回调,因为openFastlink函数是一个弹出窗口,必须直接绑定到按钮,以防止浏览器阻止它。访问令牌也必须在与openFastlink相同的单击事件中检索,这是一项要求,我希望避免使ajax调用与“async:false”同步 我现在尝试使用下面的Async/await,但是openFastLink函数仍然没有等待getAccessToken()导致错误。我是J
async function getAccessToken(args) {
const result = await $.ajax({
url: "/request/access-token",
type: 'POST'
});
return result['access_token'];
}
$('#openFastlink').click(function() {
window.fastlink.open({
fastLinkURL: 'https://fl4.prod.yodlee.com.au/...',
accessToken: 'Bearer ' + await getAccessToken(),
forceIframe: true,
iframeScrolling: true,
params: {
configName : 'Aggregation'
},
onSuccess: function (data) {
alert('account linked!');
}
},
'container-fastlink');
});
“…但是openFastLink函数仍然没有等待getAccessToken()…”该代码根本不会运行。解析器将带一个语法错误,因为您不能在非async
函数中使用await
。