首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Aurelia - javascript/Typescript在返回promise之前typeahead调用函数导致错误的问题

Aurelia是一个基于JavaScript/TypeScript的前端开发框架,它提供了一套优雅且高效的工具和组件,帮助开发者构建现代化的Web应用程序。在使用Aurelia时,有时会遇到在返回Promise之前调用typeahead函数导致错误的问题。

这个问题通常是由于异步操作的执行顺序不正确导致的。当使用typeahead函数时,它会触发一个异步操作来获取建议列表。如果在异步操作完成之前尝试访问返回的Promise,就会导致错误。

为了解决这个问题,可以使用async/await或Promise的then方法来确保在获取到建议列表之后再进行后续操作。下面是一个示例代码:

代码语言:txt
复制
async function getTypeaheadSuggestions() {
  const suggestions = await typeahead(); // 等待异步操作完成
  // 在获取到建议列表后进行后续操作
  // ...
}

// 或者使用Promise的then方法
function getTypeaheadSuggestions() {
  typeahead().then((suggestions) => {
    // 在获取到建议列表后进行后续操作
    // ...
  });
}

在Aurelia中,可以使用各种方式来处理异步操作,例如使用async/await、Promise、或者Aurelia提供的插件和工具。具体的实现方式取决于项目的需求和开发者的偏好。

关于Aurelia的更多信息和相关资源,你可以参考腾讯云的产品介绍页面:Aurelia - 腾讯云产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

帮助编写异步代码ESLint规则

幸运是,错误推向生产环境之前,我们有一些规则来捕捉这些错误。以下是一份经过编译linting规则列表,可为你 JavaScript 和 Node.js 中编写异步代码提供具体帮助。...应将该值传递给resolve,如果发生错误,则调用 reject 并告知错误信息。 该规则不会阻止你 Promise 构造函数嵌套回调内返回值。...忘记处理错误导致应用程序行为异常。 当函数第一个参数名为 err 时,就会触发该规则。大型项目中,经常会发现不同错误命名方式,如 e 或 error。...值是有效 JavaScript(它会立即解析),但这往往表明程序员出错了,比如在调用一个返回 Promise 函数时忘记加上括号。...promise非同步函数可能会有问题,因为它可能会抛出一个 Error 对象并返回一个被拒绝promise

15910

JavaScript 中写好异步代码14条Linting规则

幸运是,我们将它们投入生产之前,我们有一些 linters 可以捕获我们一些错误。...(responses); no-promise-executor-return 不建议 Promise 构造函数返回值,Promise 构造函数返回值是没法用,并且返回值也不会影响到 Promise...问题在于读取 totalPosts 和更新 totalPosts 之间有一个时间间隔。这会导致竞争条件,当值单独函数调用中更新时,更新不会反映在当前函数范围中。...建议 reject Promise 时强制使用 Error 对象,这样可以更方便追踪错误堆栈。...忘记处理这些异常可能会导致应用程序出现不可预知问题。 如果函数第一个参数命名为 err 时才会触发这个规则,你也可以去 .eslintrc 文件里自定义异常参数名。

1.4K10

如何在 TypeScript 中使用函数

如果我们调用函数类型与函数预期类型不同,TypeScript 编译器 (tsc) 会给我们错误 2345。...当我们函数体中返回字符串时,TypeScript 正确地假定我们函数具有字符串返回类型。...使用类型化异步函数 使用 JavaScript 时,使用异步函数是比较常见TypeScript 有一种特定方法来处理这个问题本节中,我们将在 TypeScript 中创建异步函数。...这样做会导致 TypeScript 编译器发出错误 1375: 输出'await' 表达式仅在文件是模块时才允许文件顶层使用,但该文件没有导入或导出。...使用该数组之前,我们可以使用 .filter(Boolean) 对其进行过滤,以确保仅返回真实值。

15K10

手撕钉钉前端面试题

如果你之前经常进行无原则性代码设计,那么设计过程中可能会出现各种出乎意料问题(这是为什么新手老是出现一些稀奇古怪问题主要原因)。...函数式编程核心就是对函数进行组合或传递,JavaScript函数这种灵活特性是满足函数式编程重要条件。 纯函数函数是是指在相同参数调用下,函数返回值唯一不变。...JavaScript 中标准异步 API ,如果使用一些三方异步 API 并且提供了回调能力时,这些 API 可能是非受信真正使用时候会因为执行反转(回调函数执行权在三方库中)导致以下一些问题...: 调用 async 函数返回是一个 Promise 对象,通过 then 回调可以拿到 async 函数内部 return 语句返回调用 async 函数返回 Promise 对象必须等待内部所有...,会导致函数返回 Promise 对象变为 rejected 状态,从而可以通过 catch 捕获, 上述代码只是一个粗粒度容错处理,如果希望 firstPromise 错误后可以继续执行 nextPromise

2.9K20

TypeScript 3.9正式发布!平均编译时长从26秒缩短至10秒

由于 TypeScript 具有丰富跨编辑器功能,因此其中静态 type 检查能够代码运行甚至文件保存之前快速指示代码中存在错误。...除了错误检查之外,TypeScript 还允许用户自己熟悉编辑器中为 TypeScript 以及 JavaScript 代码提供补全、快速修复以及重构等功能。...Inference 与 Promise.all 迎来改进 TypeScript 最近几个版本(3.7 及之后)已经对 Promise.all 及 Promise.race 等函数声明做出更新。...条件表达式中检查未调用函数 TypeScript 3.7 版本中,我们引入了未调用函数检查(uncalled function checks)以提示那些您忘记调用函数。...快速修复缺失返回表达式 某些情况下,大家很可能会忘记返回函数中最后一条语句值。

1.6K20

写好 JavaScript 异步代码几个推荐做法

另外,如果 async 函数抛出了异常,新构造 promise 实例并不会 reject ,那么这个错误就捕获不到了。...(responses); no-promise-executor-return 不建议 Promise 构造函数返回值,Promise 构造函数返回值是没法用,并且返回值也不会影响到 Promise...问题在于读取 totalPosts 和更新 totalPosts 之间有一个时间间隔。这会导致竞争条件,当值单独函数调用中更新时,更新不会反映在当前函数范围中。...建议 reject Promise 时强制使用 Error 对象,这样可以更方便追踪错误堆栈。...忘记处理这些异常可能会导致应用程序出现不可预知问题。 如果函数第一个参数命名为 err 时才会触发这个规则,你也可以去 .eslintrc 文件里自定义异常参数名。

99110

【译】Typescript 3.9 常用新特性一览

概况一览 1、优化了 Promise.all 定义, 3.7 版本中一些混用 null 或 undefined 时候问题已经 3.9 得到了修复。...3、// @ts-expect-error 新注释添加 4、条件语句中检测未调用函数 5、编辑器提升 5.1 JavaScript 中 CommonJS 自动引入 5.2 代码操作时候正确保留换行符...5.3 添加快速修复缺失函数返回表达式 5.4 支持 "Solution Style" tsconfig.json 文件 6、一些重大变化 主要是 TypeScript 定义和书写规范上改动和修复以前.../T… github.com/microsoft/T… github.com/microsoft/T… github.com/microsoft/T… 4、条件语句中检测未调用函数 3.7 时候引入了检测未调用函数错误提示...现在有了如下自动引入功能 const { readFile } = require('fs') 5.2 缺失函数返回自动修复功能 某些情况下,我们可能会忘记返回函数最后一条语句值,尤其是向箭头函数添加大括号时

1.3K20

什么是 TypeScript 4.1 中模板字面类型?

利用带有 as 子句模板文字类型 (source) JSX 工厂函数 JSX 代表 JavaScript XML,它允许我们使用 JavaScript 编写 HTML 元素并将其放置 DOM 中,...create(): Promise; } any/unknown 向外传播 TypeScript 4.1 之前,对于像 foo && somethingElse 这样表达式,...要解决这个问题,必须在 Promise 中给 resolve 提供至少一个值,否则,确实需要不带参数情况下调用 resolve() 情况下,必须使用显式 void 泛型类型参数声明 Promise...owner, defaultUserId: 123, }; } TypeScript 4.1之前, getOwner 返回基于每个展开对象联合类型: { x: number } | {...解决方法是,最好使用类型断言来避免错误。 最后一点想法 TypeScript 通过在运行代码之前捕获错误并提供修复程序来节省我们时间。

3.9K10

实现TypeScript运行时类型检查

这个问题对一个纯前端工程师来说是有些"奇怪".因为前端并不需要对JSON 进行encode/decode , 只需要对JSON string 进行parse.parse 之后数据便是JavaScript..."失败, 导致整个"大"解析器被终止.只有赋予解析器更灵活地处理异常能力, 我们才能实现更加灵活组合方式和错误日志收集.此处可能有些抽象, 如果有所疑惑是正常现象, 结合下文理解会更加容易些.因此..., 类似于Golang 中错误处理方式.但直接通过union type进行抽象有一个弊端: 我们将难以分辨解析器返回数据是属于成功分支A呢, 还是失败分支E呢?...Parser 之前, 让我们先来了解一个概念 -- 组合子.组合子, 顾名思义, 就是对某种抽象组合操作, 本文中, 特指为对解析器组合操作.如上是示例所示, TypeScript 中, 我们也是经常使用...[]>作为最终Parser返回值.这个类型转换具有通用性, 是函数式编程中一个重要抽象, 本节中会化一些篇幅对其推导, 最终将改抽象对应到Haskell sequenceA函数.为了Either

2.4K30

TS 真香系列:你应该知道核心功能

从最新Javascript 语言状况调查》(https://2019.stateofjs.com/javascript-flavors/typescript/)中可以看出,该语言使用率越来越高。...本文将会总结你应该使用最重要功能。我会重点介绍以下最新版本功能: 注意:探究这些功能之前,你应该先去看一下 TypeScript playground,在这里可以测试所有的功能。...|| 本质上是 JavaScript布尔 OR 运算符,我们尝试利用短路返回第一个非 false 值。...对于断言函数,应该添加 asserts as 而不是返回类型。 这样,如果断言通过,TypeScript 将假定参数是前面定义类型。...提供更好反馈 从 3.6 起改进 代码中直接使用 Promise 而忘记使用 await 或 then 是常见错误,如下所示: } 以前 TypeScript 完全不了解 Promise,并显示一条与其无关错误消息

2K40

React + TypeScript + Hook 带你手把手打造类型安全应用。

: any): Promise | never 泛型 T 被原封不动交给了返回 Promise, 所以外部 axios 调用时传入 Todos 泛型就推断出返回值是了 Promise,Ts...函数重载 写到这里,类型基本上是比较严格了,但是还有一个问题,就是调用呢axios(Urls.TOGGLE)这个接口时候,我们其实是一定要传递第二个参数,但是因为axios(Urls.TODOS)...设置为可选,这就导致了一个问题,就是 ts 不能明确知道哪些接口需要传参,哪些接口不需要传参。 注意下图中 payload 是带?。 要解决这个问题,需要用到 ts 中函数重载。...但是就算是写宽松版本 TypeScript,带来收益也远远比裸写 JavaScript 要高很多,尤其是别人需要复用你写工具函数或者组件时。...而且 TypeScript 也可以开发时就避免很多粗心导致错误,详见: TypeScript 解决了什么痛点?

9510

TypeScript 4.4 RC版来了,正式版将于月底发布

这不科学,毕竟用户很可能希望多个位置重复执行相同检查。为了解决这个问题之前大家只能重复操作或者使用类型断言(强制转换)。 但在 TypeScript 4.4 中,问题已不复存在。...}; 因此,TypeScript 默认情况下并不能区分实际值为 undefined 属性与缺失属性。虽然大多数情况下这并不是什么问题,但也有一些 JavaScript 代码会做出不同假设。...这会导致不少构建操作如同 --incremental 被关闭了一样缓慢。TypeScript 4.4 修复了这个问题,同时也将修复成果向下移植到了 TypeScript 4.3 当中。...间接调用导入函数以提升合规性 在其他早期版本中,从 CommonJS、AMD 以及其他非 ES 模块系统处执行导入调用操作会设置所调用函数 this 值。...更广泛始终为真承诺检查 之前版本中,TypeScript 引用了“始终为真承诺检查”(Always Truthy Promise checks)来捕捉可能遗留有 await 代码。

2.5K20

React + TypeScript + Hook 带你手把手打造类型安全应用。

: any): Promise | never 复制代码 泛型T被原封不动交给了返回Promise, 所以外部axios调用时传入Todos泛型就推断出返回值是了Promise,Ts就可以推断出这个...函数重载 写到这里,类型基本上是比较严格了,但是还有一个问题,就是调用呢axios(Urls.TOGGLE)这个接口时候,我们其实是一定要传递第二个参数,但是因为axios(Urls.TODOS)...(一定是要能兼容之前所有的函数签名,所以最后一个签名payload需要写成可选)来进行函数实现。...但是就算是写宽松版本TypeScript,带来收益也远远比裸写JavaScript要高很多,尤其是别人需要复用你写工具函数或者组件时。...而且TypeScript也可以开发时就避免很多粗心导致错误,详见: TypeScript 解决了什么痛点?

1.8K10

旧项目TypeScript改造问题与解决方案记

JavaScript项目中jsconfig.json同理。 TypeScript相关 对象属性赋值报错 JavaScript中,我们经常会声明一个空对象,然后再给这个属性进行赋值。...缺点就是引入Promise库较大,而且如果你库作为一个基础库时,可能会与其他调用Promise库产生冲突。 3. `tsconfig.json`配置文件中增加lib。...这是由于编辑器和编译时不知道当前代码运行环境导致。 因此,我们解决这个问题思路有两种: 1. `tsconfig.json`配置文件中增加lib。...这是由于两者模块语法不一样导致。 因此,我们解决这个问题只需要用下面这一种方法: 1. 将上面的`export from`语法稍加调整来适配TypeScript语法。...## TypeScript局部替换 进行重构改造时候,我们最开始可能只能逐个模块进行替换。我们需要新TypeScript文件和旧JavaScript文件能够和平共存进行编译运行。

4.9K10

7 个好用 TypeScript 新功能

从最新Javascript 语言状况调查》(https://2019.stateofjs.com/javascript-flavors/typescript/)中可以看出,该语言使用率越来越高。...本文将会总结你应该使用最重要功能。我会重点介绍以下最新版本功能: 注意:探究这些功能之前,你应该先去看一下 TypeScript playground,在这里可以测试所有的功能。...|| 本质上是 JavaScript布尔 OR 运算符,我们尝试利用短路返回第一个非 false 值。...对于断言函数,应该添加 asserts as 而不是返回类型。 这样,如果断言通过,TypeScript 将假定参数是前面定义类型。...提供更好反馈 从 3.6 起改进 代码中直接使用 Promise 而忘记使用 await 或 then 是常见错误,如下所示: } 以前 TypeScript 完全不了解 Promise,并显示一条与其无关错误消息

1.8K20

50道JavaScript详解面试题,你需要了解一下

答案是第二种情况(打印出queueMicroTask更好),因为来自queueMicroTask任务调用栈为空之后且调用事件循环之前调用,对于setTimeout而言,任务是eventQeue一部分...Line2中,我们使用===运算符来检查两个字符串基元而不是字符串对象,因此我们得到True。 5、控制台输出是什么,为什么? 与之前问题类似,我们比较了两个唯一对象。...答案,是B,因为异步函数JavaScript返回Promises 。 8、等待关键字会阻止应用程序中所有JavaScript代码执行,直到返回等待Promises?...该函数名称,一个指向该函数范围内变量,并使用arguments.callee。 28、JavaScript是否支持重载? 不,JavaScript本身不支持重载,但TypeScript可以。...控制台输出将为10和5,因为该函数Promise中没有异步内容,并且Promise同步解析。 32、浏览器下一次重画显示内容之前,哪个函数会执行指定代码块?

3.5K40

怎样编写更好 JavaScript 代码

但是这个代码不是产生有效 JavaScript,而是导致无效 TypeScript,因为现在使用它 1000 个位置提供了错误类型。...而且由于我们之前讨论过“类型安全”,这 1000 个问题将会阻止编译,并且你函数不会失效(这非常好)。 TypeScript使团队架构沟通更容易。...这也提供了一种简洁分享、交流架构方案方法。 TS 出现之前,也存在解决这个问题其他方案,但是没有一个能够真正解决它,并且还需要你做额外工作。...var 处理方面有一些非常独特且有趣规则。var 作用域行为是不一致而且令人困惑 JS 整个生命周期中导致了意外行为和错误。...Vanilla 匿名函数作用域方面表现得“有趣”,这可能导致许多意外错误。有了箭头函数,我们就不必再担心了。

1.3K30

Angular、React、Vue.js等6 大主流 Web 框架都有什么优缺点?

接着就会出现寻找人才问题,他们不需要知道框架是如何工作,只需要寻找会调用网络平台 API 高级技能人才或者一些自称有经验的人才,最后却发现缺少利于团队发展技能深度和经验。...我们觉得 Angular 框架着重于单个页面应用程序中创建用户界面并没有处理构建完整 web 应用这个更大关注点,如果不及早确定下来,这将会导致整个项目难以维护,实际项目中,运行时提供不属于核心框架技术往往让人觉得不可思议...因此,虽然 React 和 Redux 都是非常专注库,但缺乏经验团队还是会很容易地生成不可维护解决方案,而不是意识到他们所做选择会导致性能不佳或错误。...提供一个国际化系统和广泛易接入性模式也是其中之一,同时也提供一个主题系统和演进模式,用以确保不仅能为 Typescript/JavaScript 提供良好代码开发,也能像 CSS 那样管理资源。...同时,希望你也意识到没有普遍错误决定,你应该用一些问题和思考来武装自己,帮助你选择框架。

2.8K00
领券