는 지금까지 내가 소스 코드에 파고에서 말할 수있는 결과는 다음 방법 중 하나에 의해 결정됩니다 호출 할 :
- 파이어 폭스 :
JS_EvaluateScriptForPrincipals
스크립트를 컴파일 * rval에가 SCR에서 처리 마지막 실행 문 식의 값을 수신하고, 성공적으로 실행되면 ipt 및 JS_EvaluateScriptForPrincipals 또는 JS_EvaluateUCScriptForPrincipals는 JS_TRUE를 반환합니다. 그렇지 않으면 JS_FALSE를 반환하고 * rval에 남아있는 값은 정의되지 않습니다.
- 웹킷 : 예외가 발생하는 경우 평가 스크립트, 또는 NULL의 결과
JSEvaluateScript
값.
는 그래서 에러가 없다면, true
가 반환됩니다, 같은 소리.
은 지금까지 당신의 질문의 비동기 부분에 관한 한, Browser
는 비동기 작업의 실행을 기다리지 않습니다. 그러나 수행 할 수있는 작업은 BrowserFunction
(this example에 나와 있음)을 정의하고 비동기 작업이 완료되면 JavaScript에서 해당 메소드를 호출하는 것입니다.
출처
2016-12-14 12:37:46
Baz
우선 빠른 응답에 감사드립니다. 내 문제는 여기에 "성공하고 성공적으로 실행됩니다."이며, 성공한 것으로 간주되는 것을 지정하지 않습니다. 함수를 비동기 적으로 호출하면 (예 : setTimeout을 통해) 스크립트가 계속 실행되고 지정된 시간이 만료되고 setTimeout 함수에 전달 된 콜백이 실행될 때까지 호출 스택이 비어있게됩니다. 제 질문은 브라우저가이 콜백을 기다리거나 스크립트 실행이 끝나면 성공적으로 실행될 것이라고 말합니까? – chris
@chris 비동기 작업이 실패하면 어떻게되는지보십시오. 내 생각 엔 비동기 호출을 보냈을 때 돌아올 것이기 때문에 'true'를 반환 할 것이지만 잘못 될 수 있습니다. – Baz
방금 확인한 바 : 브라우저가 콜백 호출을 기다리지 않습니다 – chris