나는 https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Your_second_WebExtension 링크를 통과했습니다. choose_beast.js 스크립트에서 키워드 then()을 이해할 수 없습니다. 나는 그것이 javascript의 약속과 관련된 것이라고 알고 있습니다. 이런 맥락에서 간단한 언어로 약속하고 사용하는 것을 설명 할 수 있습니까?비동기 약속 및()
-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 e를 사용하므로 오류가 발생합니다.
someAsyncFuntion()
은 다음 프로세스를 사용할 수있을 때 실행되도록 대기합니다. 파서는 let b = a * 3;
으로 이동하지만 여기서는 a
이 아직 설정되지 않았으므로 오류가 발생합니다.
간단히 말해서, 약속에서 함수는 비동기 적으로 실행되도록 대기 중입니다. 따라서 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. 약속 및 비동기 파이프와
- 2. nodejs에서 비동기 및 Q 약속
- 3. 비동기 적으로 약속 해결
- 4. 비동기 루프 약속
- 5. 비동기/약속 기다림
- 6. ES6 비동기 약속
- 7. Winjs 약속 비동기 테스트
- 8. 서비스에서 각도 $ 약속 및 비동기 응답으로 고민
- 9. 비동기 각도 약속 및 변수 초기화
- 10. 비동기 및 동기화와 관련된 약속 - 각도
- 11. 모두 거부 된 비동기 및 약속 사용시 비동기 완료되지 않음
- 12. 약속 비동기 .then 콜백없이 기다림
- 13. Ember : 복잡한 비동기 약속 해결
- 14. 비동기 루프 기능에서 각도 약속
- 15. JS 비동기/await를 반환 약속
- 16. For 루프 내부 비동기 약속
- 17. 자바 스크립트 비동기 프로그래밍 : 생성기 대 약속
- 18. async/wwait 약속 약속
- 19. 재생 2 비동기 약속 내기 사용
- 20. 네이티브 JavaScript 약속 사용 체인 비동기 작업
- 21. 약속 지옥이없는 비동기 약속을 어떻게 실행합니까?
- 22. NodeJS/gm : 비동기 호출로 약속 함
- 23. angular 2+ 약속, 관측 가능 및 비동기 파이프
- 24. Emberjs - 약속 및 기타 비동기 동작을 테스트하는 방법?
- 25. 비동기 기다리고 있습니다 또는 약속 스트림 이벤트
- 26. 각도, 이온, 서비스 약속, 지연, 비동기
- 27. 블루 버드 약속 내에서 비동기 작업 수행
- 28. 약속 안에 forEach 비동기 요청을 수행 하시겠습니까?
- 29. 약속 없음의 결과 비동기 함수 얻기
- 30. 비동기 선언하지 않고 약속 기다리는 방법
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