草庐IT

Async-await

全部标签

javascript - 异步函数与返回 New Promise

更新我已经阅读了十几篇关于这个主题的文章,但没有一篇涉及这个基本问题。我将在本文末尾开始列出资源部分。原帖我对async函数的理解是它返回一个promise。MDN文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function在我的程序中我可以这样写:functiontestPromise(){returnnewPromise((resolve,reject)=>{//DOWORKreject()//IFWORKFAILSresolve()//IFWORKISS

javascript - 带有异步等待的 chrome.runtime.onMessage 响应

我想在onMessage监听器中使用异步等待:chrome.runtime.onMessage.addListener(async(request,sender,sendResponse)=>{varkey=awaitgetKey();sendResponse(key);});但是,当我发送消息时,我得到了undefined。来自chrome.runtime.onMessage.addListener的文档:Thisfunctionbecomesinvalidwhentheeventlistenerreturns,unlessyoureturntruefromtheeventliste

javascript - 为什么这个 JavaScript async/await 代码没有按预期运行?

我已经尝试阅读有关异步/等待的指南和教程,但我似乎无法在任何地方找到解决这个问题的方法。这里是有问题的代码:varfunc1=newPromise((resolve,reject)=>{console.log("Func1");setTimeout(()=>{resolve(10);},100);});varfunc2=newPromise((resolve,reject)=>{console.log("Func2");setTimeout(()=>{resolve(20);},5000);})letrun=async()=>{letvar1=awaitfunc1;letvar2=aw

javascript - ES2017 Async/await 函数 - 它们只适用于 promises 吗?

我开始在我的js应用程序(由Babel转译)中使用async/awaitES7函数。如果错了请纠正我,但它们只适用于Promises吗?如果是,这意味着我需要将常规回调函数包装到Promises中(顺便说一句,我目前正在做的事情)。 最佳答案 当前(也可能是最终的)async/await提案等待promises和脱糖成类似bluebird的Promise.coroutine的东西,其中await扮演yield.这是有道理的,因为promise代表值(value)+时间,而您正在等待该值(value)可用。注意await也在所有其他包

javascript - async/await 不能与 fetch 结合使用

我正在尝试将ES7async/await与fetch一起使用。我知道我很接近,但我无法让它工作。这是代码:classBar{asyncload(){leturl='https://finance.yahoo.com/webservice/v1/symbols/goog/quote?format=json';try{response=awaitfetch(url);returnresponse.responseText;}catch(e){returne.message;}}}我使用如下:letbar=newBar();bar.load().then(function(val){cons

javascript - JSHint 无法识别 Visual Studio Code (VSCode) 中的 Async/Await 语法

我一直在努力使用VSCode和JSHint来寻找摆脱这种语法高亮显示的方法。似乎JSHint无法识别Async/Await语法。在这里您可以找到我正在谈论的内容的屏幕截图。我的JSHint版本:jshint-esnextv2.7.0-3 最佳答案 在visualstudiocode中,JSHint和ESLint相互抵消。所以如果你想在vscode中使用异步函数,那么你必须禁用Jshint并启用eslint。 关于javascript-JSHint无法识别VisualStudioCode(

javascript - 在异步函数之外等待不会在控制台中抛出错误

MDNsays:Remember,theawaitkeywordisonlyvalidinsideasyncfunctions.Ifyouuseitoutsideofanasyncfunction'sbody,youwillgetaSyntaxError.但这不是真的。在DevTools控制台中尝试这段代码,没有错误,只有结果:asyncfunctiona(val){returnval;}awaita(10)//awaitisnotinsideasyncfunction10代码或文档有什么问题? 最佳答案 MDN文档是正确的,它解释

javascript异步/等待不工作

我有一个特殊情况,我需要等待异步调用结果继续。我正在使用async/await关键字,但运气不好。任何帮助表示赞赏。这是我尝试让它工作的尝试,数字应该按数字顺序排列。functionsleep(ms){returnnewPromise(resolve=>setTimeout(resolve,ms));}asyncfunctiondemo(){document.writeln('2...');awaitsleep(2000);document.writeln('3...');}document.writeln('1...');demo();document.writeln('4.');

javascript - ES7 中新的 async 和 await 关键字是从 C# 复制过来的吗?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭7年前。Improvethisquestion注意到Java中没有async和await,ES7中的这些新关键字是从C#语言复制而来的?我很好奇起源:谁提出了关键字名称,JS社区中是否有人正在利用.NET框架的概念?

javascript - 为什么 await 之后的代码没有立即运行?它不应该是非阻塞的吗?

我很难理解async和await在幕后是如何工作的。我知道我们有promise,通过使用“then”函数可以使我们的代码成为非阻塞代码,我们可以在promise得到解决后放置我们需要做的所有工作。以及我们想要并行进行的工作,以保证我们只是将它写在我们的then函数之外。因此代码变得非阻塞。但是我不明白asyncawait是如何生成非阻塞代码的。asyncfunctionmyAsyncFunction(){try{letdata=awaitmyAPICall('https://jsonplaceholder.typicode.com/posts/1');//Itwillnotrunthi