ecmascript-2017相关内容

为什么等待之后的代码不立即运行?它不应该是非阻塞的吗?

我很难理解异步和等待在幕后是如何工作的。我知道我们有承诺,通过使用";Then;函数,我们可以在承诺解析后放置我们需要做的所有工作,从而实现我们的非阻塞代码。我们想要做的工作与承诺的并行,我们只是在Then函数之外编写它。因此,代码变成了非阻塞的。但是,我不明白asyncawait是如何生成非阻塞代码的。 async function myAsyncFunction() { tr ..
发布时间:2022-04-03 16:28:57 前端开发

异步/等待本机实现

这个提议建议async函数可以使用引擎盖下的生成器函数,尽管我在 ES2017 规范中找不到对此的确认. 此外,当生成器原型在 Chrome/Node.js 中变得混乱时,async 函数似乎没有受到影响,这表明没有使用 GeneratorFunction通过 AsyncFunction,至少直接: Object.getPrototypeOf((function * () {}).prot ..
发布时间:2021-12-27 23:47:52 前端开发

async await 在浏览器中真的是非阻塞的吗?

我一直在使用 TypeScript 和原生 Promise 的 SPA 中使用该功能,我注意到即使我将长时间运行的函数重构为返回 Promise 的异步函数,UI 仍然没有响应. 所以我的问题是: 新的 async/await 功能究竟如何帮助避免阻塞浏览器中的 UI?在使用 async/await 实际获得响应式 UI 时,是否需要采取任何特殊的额外步骤? 有人可以创建一个小提 ..

ES8 立即调用异步函数表达式

我没有看到这些结构被大量使用,但我发现自己编写它们是为了在通常不会返回承诺的函数中使用 async/await,例如 chan.consume(queue, (msg) => {this.pendingMsgs++;//立即执行(异步() => {等待 this.handleMessage(msg);this.pendingMsgs--;如果(取消&& this.pendingMsgs === ..
发布时间:2021-12-27 23:23:34 前端开发

Array#map() 中的异步/等待

我收到此代码的编译时错误: const someFunction = async (myArray) =>{返回 myArray.map(myValue => {返回 {id: "my_id",myValue: 等待 service.getByValue(myValue);}});}; 错误信息是: await 是保留字 为什么我不能这样使用它? 我也尝试了另一种方法,但它给 ..
发布时间:2021-12-27 23:18:56 前端开发

为什么 await 和 async 是有效的变量名?

我在尝试使用不同的关键字和运算符时如何解释 /,并发现以下语法是完全合法的: //等待不是 Promise 的东西很好,只是这样做很奇怪:const foo = 等待/barbaz/myFn() 错误: 未捕获的引用错误:未定义等待 看起来它试图将 await 解析为变量名..?我期待着 await 只在 async 函数中有效 或者类似的东西 意外的令牌等待 ..

ES2017 - 异步与收益

我对当前关于向下一个 EcmaScript 添加异步函数和关键字 await 的讨论感到困惑. 我不明白为什么必须在 function 关键字之前添加 async 关键字. 从我的角度来看,await 关键字等待生成器或 promise done 的结果,函数的 return 应该就足够了. await 应该很简单,可以在普通函数和生成器函数中使用,无需额外的 async 标记. ..
发布时间:2021-12-23 11:57:11 前端开发

在 React.js 中将 Async/Await 与 Axios 结合使用

关注 如何在反应中使用 async/await 和 axios 我正在尝试使用 React.js 应用程序中的 Async/Await 向我的服务器发出一个简单的 get 请求.服务器在 /data 加载一个简单的 JSON,它看起来像这样 JSON {编号:1,名称:《阿迪亚》} 我能够使用简单的 jquery ajax get 方法将数据获取到我的 React 应用程序. ..
发布时间:2021-12-14 20:25:31 前端开发

有没有办法将 await/async try/catch 块包装到每个函数中?

所以我正在使用 express.js 并考虑在节点 7 中使用 async/await.有没有办法我仍然可以捕获错误但摆脱 try/catch 块?也许是函数包装器?我不确定这将如何实际执行函数的代码并调用 next(err). exports.index = async function(req, res, next) {尝试 {让用户 = 等待 User.findOne().exec();r ..
发布时间:2021-12-09 12:56:50 前端开发

“ObjectConstructor"类型上不存在属性“条目"

我正在研究 ng2 实现.我正在使用以下函数调用将对象转换为数组: var author = Object.entries(responseObject.Authors); 这是一个标准的js函数.但是,ts 编译器返回以下错误: “类型“ObjectConstructor"上不存在属性“条目""; 基于快速 google 看来,解决方案可能是将 compilerOptions 目标属性从 ..

如何在顶层使用 async/await?

我一直在研究 async/await 并且在阅读了几篇文章之后,我决定自己测试一下.但是,我似乎无法理解为什么这不起作用: async function main() {var value = await Promise.resolve('Hey there');console.log('里面:' + 值);返回值;}var text = main();console.log('外部:' + 文 ..
发布时间:2021-11-30 13:31:31 前端开发

正确的 Try...Catch 语法使用 Async/Await

我喜欢 Typescript 等中可用的新 Async/Await 功能的扁平化.但是,我不确定我是否喜欢这样一个事实,即我必须声明变量 Im await 在 try...catch 块的外部,以便稍后使用它.像这样: 让 createdUser尝试 {createdUser = await this.User.create(userInfo)} 捕捉(错误){控制台错误(错误)}控制台日志(创 ..