2012-01-17 2 views
5

이벤트 핸들러에서만 수신 할 값을 반환하기 위해 이벤트를 처음 시작하는 함수에 이벤트 핸들러가 반환하는 값이 있어야합니다. . 나는 이것을 달성하거나 다른 각도에서 문제를 공격하는 쉬운 방법이 있어야한다고 생각합니다.자바 스크립트에서 부모 함수로 이벤트 핸들러의 값을 반환

내가 실제로해야 할 것은 :

  1. 합니다 (dataURL이 canvas.toDataURL에서 오는())
  2. img.onload가하게됩니다에 dataURL을 공급하는 새로운 IMG의 DOM 객체를 생성 나에게 dataURL을 반환합니다.

어떻게 든 도움이된다면 사용하지만 당연히하지 않아도됩니다.

필자는 데이터가 즉시 img에 의존 할 수없고 이벤트가 발생하기를 기다리는 시간 제한을 사용하는 것이 어리석은 느낌이 들며 일부 글로벌 변수를 사용하기 때문에 특히 병렬로 처리 될 수 있습니다 .

더 많은 배경 정보를 보려면 HTML5 엔진으로 이미지를 업로드 (멀티)하기 전에 크기를 조정해야합니다. 심지어 읽기, 물론 어떤 조언을위한

감사합니다 :)

감사합니다, 이고르

+0

아무 것도 이벤트 처리기를 쓴 다음 "부모"함수의 값이 필요하다는 것을 알았습니다. 나는 타임 아웃으로 반복 할 수 있다는 것을 알지만, 직관력은 더 똑똑한 것이 있어야한다고 말한다. :) –

+1

약속 도서관은 가치가 있을지 모른다 : https://github.com/kriskowal/q – thetallweeks

+1

아주 오래된 것일 수도 있지만 이 질문에 비틀 거리는 사람에게 유용한 설명. 요즘 블루 버드를 사용하고 있습니다. 질문을 검토하면 많은 진전이 있었음을 깨달았습니다. 금요일 오후에 재계에 감사드립니다.) –

답변

3

그것은 값 이벤트 핸들러에서 복귀 이해가되지 않습니다. 이벤트가 발생하면 이벤트가 발생하고 처리기는 브라우저에서 호출됩니다. 따라서 리턴 값을 기대하는 코드는 없습니다. 거기에는 아무 것도 없습니다.

내부에서 수행해야하는 작업은 무엇이든 간단히 수행하십시오.

+0

이벤트가 발생한 객체를 생성 한 함수 (F)의 값을 반환해야합니다. 처음에 F를 호출 한 변수. 죄송합니다. 혼란스러운 경우 : –

+0

나는 당신이 말하는 것을 알고 있습니다. 그러나 그렇게 할 수는 없습니다. 웹 브라우저의 JavaScript는 비동기 환경입니다. 어떤 일이 일어나기를 기다리는 함수를 만들 수는 없습니다. 따라서 코드를 구조화하는 방법은 비동기 특성을 사용하는 것이고 반환 값을 기대하는 함수를 작성하는 대신 "onload"핸들러에서 호출 할 자체 핸들러 함수를 전달해야합니다 이미지의 – Pointy

+1

나는 거기에 도착하고 있다고 생각한다 ... img가로드 될 때 거기에서 그것을 실행하기 위해 원래의 핸들러에 다른 핸들러를 전달해야한다 ... –

관련 문제