从Javascript中的async函数获取返回值
Get return value from async function in Javascript
我有一个函数,它通过chrome.storage.sync.get
检查存储值,并在存在所述存储值时插入CSS文件。
我意识到chrome.storage.sync.get
是一个异步函数,返回值并没有像预期的那样传递回makeAggressive()
函数。然而,我不知道如何编写此代码,以获得传递给makeAggressive()
的if (result == 'aggressive')
的结果。
如何检索存储的值,检查其值并将结果返回给调用函数?
chrome.tabs.onUpdated.addListener(function(tabId, info, tab) {
if (info.status == 'complete') applyCSS(tab);
});
function applyCSS(tab) {
var tabUrl = tab.url;
if (makeAggressive()) {
chrome.tabs.insertCSS(tab.id, {
file: "aggressive.css"
});
}
}
function makeAggressive() {
chrome.storage.sync.get(function(items) {
var result = items.intensityLevel;
if (result == 'aggressive') {
return true;
}
});
}
只需将回调传递到异步函数中
异步活动完成后,应调用回调。
async_function(function() {
// do something after async_function completes and invokes this callback
});
function async_function(callback) {
something_async(function(result) {
callback(result);
});
}
在您的情况下:
function applyCSS(tab) {
var tabUrl = tab.url;
makeAggressive(function() {
chrome.tabs.insertCSS(tab.id, {
file: "aggressive.css"
});
});
}
function makeAggressive(callback) {
chrome.storage.sync.get(function(items) {
var result = items.intensityLevel;
if (result == 'aggressive') {
callback();
}
});
}
相关文章:
- 从ID Jquery类获取返回值时出现问题
- 从 html.append 追加的 html 下拉列表中获取返回值
- 如何从Ajax请求中获取返回值并将其分配到元素中
- jQuery deferred:用于延迟函数的返回,直到函数内的异步调用完成+获取返回值
- 如何使用Ajax内部调用JQuery在函数中获取返回值
- 从回调函数 -JQuery 获取返回值
- 尝试从 javascript 模块获取返回值
- 从 WebKit / JavaScriptCore 中的 Javascript 获取返回值
- 通过 ajax 获取返回值
- jquery ajax 获取返回值
- 使用GWT'从java方法获取返回值;s JSNI
- 使用jQuery和AJAX调用PHP类方法并获取返回值
- 从函数中获取返回值是d
- 可以't在chrome控制台中从带名称空间的javascript函数获取返回值
- 如何获取返回值的内容
- 如何从IJavaScriptExecutor中获取返回值
- 使用Odoo8从javascript中的调用函数获取返回值
- 如何从方法中的方法获取返回值
- 如何从确认弹出警报中获取返回值
- 可以't从节点模块中的异步瀑布中获取返回值