我正在通过链接https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Your_second_WebExtension。 我无法理解choose_beast.js脚本中的关键字then()。我知道这是与JavaScript中的承诺有关的东西。你能用简单的语言解释承诺,然后在这种情况下使用吗?Asynchronous Promise然后()
-1
A
回答
0
让我们来比较同步代码和异步代码。
寻找在一个正常的同步代码:
let a = Date.now();
let b = a * 3;
a
被b
之前设置设定,这是可用于要使用的下一行
寻找在一个异步代码:
let a = someAsyncFuntion();
let b = a * 3; // runs into error
a
在b
设置之前没有设置,它不可用于b的下一行使用,因此会导致错误。
当下一个进程可用时,someAsyncFuntion()
排队运行。解析器移动到let b = a * 3;
,但这里的a
尚未设置,所以会出现错误。
我简单的话,在Promise函数排队等待异步运行。因此,then()
是当它完成它。
看看上面页面上的例子:
var gettingActiveTab = browser.tabs.query({active: true, currentWindow: true});
gettingActiveTab.then((tabs) => { browser.tabs.sendMessage(tabs[0].id, {beastURL: chosenBeastURL}); });
browser.tabs.query()
没有立即运行,并不会立即得到结果。因此,我们编写代码,以便在得到结果then()
时做一些事情。
// query tabs asynchronously
var gettingActiveTab = browser.tabs.query({.....});
// once got the result THEN do something
gettingActiveTab.then(/* do something */);
我希望有帮助。
相关问题
- 1. AngularJS - Promise vs然后?
- 2. Angular2 Promise。然后未定义
- 3. 无法从Promise返回值。然后javascript
- 4. typescript syntax angular2 promise然后回调
- 5. 将我的头围绕Promise,然后
- 6. 在`Promise`和`然后()`执行顺序
- 7. DecisionTaskTimedOut使用@Asynchronous注释时
- 8. IEnumerable Asynchronous
- 9. Android Asynchronous WebView
- 10. Asynchronous ReadDirectoryChangesW()?
- 11. Asynchronous ObjectContext.SaveChanges()?
- 12. Twitterizer2和Twitterizer2.Asynchronous
- 13. 只显示一条消息后用promise保证。然后AngularJS
- 14. 注意Promise完成,然后执行下一个Promise。可观察vs承诺?
- 15. Asynchronous Mathjax SVG
- 16. Asynchronous swift 3
- 17. AppEngine Datastore Asynchronous put
- 18. Javascript/AJAX Asynchronous Loading Spinners
- 19. SFSB与@Asynchronous方法
- 20. 如何从Promise函数获得响应。然后?
- 21. 工厂 - 然后和Catch Promise在AngularJS链接
- 22. 将js回调函数转换为带有promise的angular。然后
- 23. 如何处理来自多个错误,然后抓住javascript promise?
- 24. Coherence Asynchronous Get/Put .Net
- 25. 确实@Asynchronous有超时
- 26. Angularjs $ http post promise
- 27. 可能会传递一个前一个Promise,然后将值传递给一个然后链中的catch方法?
- 28. 在解决相同函数中的promise后返回promise
- 29. Javascript Promise calling promise confusion
- 30. Asynchronous WFC server side like IHttpAsyncHandler
https://developers.google.com/web/fundamentals/getting-started/primers/promises https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise –
我已经读过它,但不能简单地理解。 –
相关:[为什么我的变量在函数内部修改后没有改变? - 异步代码引用](https://stackoverflow.com/q/23667086) – Makyen