jku*_*zak 1 asynchronous google-chrome-extension google-chrome-storage es6-promise
我有几个异步功能正在运行。我想等他们全部完成后再进行下一步。这是我用来从中获取所有键/值chrome.storage和Promise.all()实现的代码。
var promise1 = Promise.resolve(3);
var promise2 = 42;
var promise3 = new Promise(function(resolve, reject) {
setTimeout(resolve, 100, 'foo');
});
var getAll = chrome.storage.sync.get(function(result) {
console.log(result)
});
Promise.all([promise1, promise2, promise3, getAll]).then(function(values) {
console.log(values); // [3, 42, "foo", undefined]
});
Run Code Online (Sandbox Code Playgroud)
不幸的是,这行不通。它返回undefined。
上面的大多数代码都来自MDN,网址为:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all
该chrome.*API不支持Promise,它使用异步回调。
但是您可以向chrome.storage.sync.get以下地点发出电话:
var getAllPromise = (function() {
return new Promise(function(resolve) {
chrome.storage.sync.get(function(result) {
resolve(result);
});
});
})();
Promise.all([getAllPromise]).then(...);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
960 次 |
| 最近记录: |