gpt4 book ai didi

javascript - 从 chrome.history.search() 回调返回一个字符串

转载 作者:行者123 更新时间:2023-12-02 19:12:58 25 4
gpt4 key购买 nike

我正在尝试从 chrome.history.search http://developer.chrome.com/extensions/history.html#method-search 中的回调返回最后一个 URL

到目前为止,我的方法如下所示:

var getLastUrl = function() {
chrome.history.search({
text: '',
maxResults: 1
}, function(results) {
console.log(results);
console.log(results[0].url);
return 'Return value: ' + results[0].url;
});
};

这是运行 getLastUrl() 时后台页面控制台的输出 output

正如您所看到的,有一个返回对象,并且 console.log(results[0].url) 正在工作,但回调返回一个未定义的值。我该如何解决这个问题,以便它返回正确的 url?

谢谢。

最佳答案

自己想出了如何做到这一点,这是因为 chrome 扩展 api 的异步特性,这对我有帮助 How to make a function wait until a callback has been called using node.js .

基本上我没有定义,因为函数在没有等待回调的情况下完成了(因为它是异步的)。

所以而不是这样做

var getLastUrl = function() {
chrome.history.search({
text: '',
maxResults: 1
}, function(results) {
console.log(results);
console.log(results[0].url);
return 'Return value: ' + results[0].url;
});
};

var lastUrl = getLastUrl();

我将函数编辑为如下所示:

var getLastUrl = function(callback) {
chrome.history.search({
text: '',
maxResults: 1
}, function(results) {
console.log(results);
console.log(results[0].url);
callback(results[0].url);
});
};

然后您可以使用以下方式访问该网址:

getLastUrl(function(lastUrl) {
// now you can use lastUrl here
});

希望这对遇到此问题的任何人都有帮助!

关于javascript - 从 chrome.history.search() 回调返回一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13463532/

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