我正在通過鏈接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