小编Joh*_*145的帖子

jQuery UI TypeError:e.widget.extend不是函数

我更新了我的jQuery文件,包括jquery UI,以使用工具提示功能.

但现在Javascript正在消失,出现以下错误:

TypeError: e.widget.extend is not a function
Run Code Online (Sandbox Code Playgroud)

谁能帮我?

javascript jquery jquery-ui jquery-ui-tooltip

21
推荐指数
1
解决办法
3万
查看次数

如何获取多个 DispatchWorkItems 的取消状态

背景

我正在实施搜索。每个搜索查询都会生成一个 DispatchWorkItem,然后将其排队等待执行。由于用户触发新搜索的速度比前一个搜索完成的速度要快,因此我想在收到新搜索后立即取消前一个搜索。

这是我当前的设置:

var currentSearchJob: DispatchWorkItem?
let searchJobQueue = DispatchQueue(label: QUEUE_KEY)

func updateSearchResults(for searchController: UISearchController) {
    let queryString = searchController.searchBar.text?.lowercased() ?? ""

    // if there is already an (older) search job running, cancel it
    currentSearchJob?.cancel()

    // create a new search job
    currentSearchJob = DispatchWorkItem() {
        self.filter(queryString: queryString)
    }

    // start the new job
    searchJobQueue.async(execute: currentSearchJob!)
}
Run Code Online (Sandbox Code Playgroud)

问题

我知道这dispatchWorkItem.cancel()不会立即终止正在运行的任务。相反,我需要手动检查dispatchWorkItem.isCancelleddispatchWorkItem但在这种情况下我如何获得正确的对象呢?

如果我只设置currentSearchJob一次,我可以简单地访问该属性,就像在本例中所做的那样。但是,这在这里不适用,因为该属性将在filter()方法完成之前被覆盖。我如何知道哪个实例实际上正在运行我要检查的代码dispatchWorkItem.isCancelled

理想情况下,我想将新创建的参数DispatchWorkItem作为该方法的附加参数提供filter()。但这是不可能的,因为我会收到 …

concurrency grand-central-dispatch ios swift

4
推荐指数
1
解决办法
1007
查看次数