gpt4 book ai didi

javascript - 在 jquery 事件处理程序中使用sequelize 查询结果

转载 作者:行者123 更新时间:2023-12-01 03:17:29 24 4
gpt4 key购买 nike

有一个electron framework它为您提供了一个精简的浏览器来构建桌面应用程序的用户界面。就我而言,我使用 jQuery 进行 DOM 导航,使用 Sequelize 与我的 sqlite 数据库和其他几个库进行交互。

假设我有一个文本字段,用户可以在其中输入电影名称。我的数据库存储了几百个电影名称。所以我想为用户提供自动完成建议。

通常,我会使用类似的方法来注册 jQuery 处理程序(这会将字段输入回显到控制台):

$('#movie-search-field').on('input', (event) => {
console.log(event.target.val())
})

使用sequelize,您通常会拥有一个模型(例如Movie)并像这样查询它:Movie.findAll()。问题来了:

如果我像这样注册我的处理程序:

Movie.findAll().then((movies) => {
$('#movie-search-field').on('input', (event) => {
/*Use movies here to build and show a suggestions list*/
})
})

那么它永远不会被触发。我已经验证了 .then 子句是通过从其中将 movies 打印到控制台来输入的。

另一方面,如果我尝试从处理程序内部查询数据库:

$('#movie-search-field').on('input', (event) => {
Movies.findAll().then((movies) => {
/*Use movies to build and show a suggestions list*/
})
})

然后处理程序在 promise 解决之前退出并且不显示任何建议。

如何在事件处理程序中使用数据库查询结果?

最佳答案

你可以做一个简单的回调

$('#movie-search-field').on('input', (event) => {
getResults(function(movies) {
/* Display your movies */
})
})

function getResults(callback) {
Movies.findAll().then((movies) => {
/*Use movies to build and show a suggestions list*/
callback(movies)
})
}

因此,当用户在输入框中键入内容时,它会请求建议,然后当它返回建议时,它将调用函数(回调),然后您可以显示它们

关于javascript - 在 jquery 事件处理程序中使用sequelize 查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45458489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com