2013-02-08 6 views
0

이것은 아마도 매우 기본적인 것이지만 내 경우에 대한 명확한 답을 찾지 못하는 것 같습니다.완료 후 jQuery 함수 실행

나는 하나 개의 함수가 "1", "3", "로 경고 화재 아래에있는 내 스크립트에

을 계속 할 수있는 작업 흐름의 나머지 전에 실행 및 완료되었는지 확인하는 방법을 알고 싶습니다

2 "스크립트가 up.settings.multipart_params

preinit: { 

      UploadFile: function (up, file) { 
       getS3Policy(file); 
       alert("3"); 
        up.settings.multipart_params = { 
         key: path, 
         filename: file.name, 
         AWSAccessKeyId: 'AKIAJIRIA6XD4V5MFWCA', 
         acl: 'private', 
         policy: policy, 
         signature: signature, 
         success_action_status: '201' 
        } 

      } 
     }, 

    }); 
    function getS3Policy(file) { 
     alert("1"); 
     data = { 'alc': 'private', 'bucket': 'PhotojimaDev', 'key': path, 'file': file.name }; 
     $.ajax({ 
      url: '/desktopmodules/uploader/API/upload/getPolicy', 
      type: 'POST', 
      data: data, 
      success: function (response) { 
       console.log(response); 
       if (response) { 
        policy = response.policy; 
        signature = response.signature; 
        alert("2"); 
       } 
       else { 
        return "Error"; 
       } 
      } 
     }); 

답변

1

로 단계 전에 완료 될 getsS3policy (파일)을하려는 경우 당신은 jQuery를 아약스의 콜백 찾고 있습니다. http://api.jquery.com/jQuery.ajax/

+0

스크립트의 다음 단계로 어떻게 콜백 할 수 있습니까? –

1

success ajax 호출의 기능은 콜백입니다. 콜백에 up.settings.multipart_params을 넣으면 데이터가 수신되면 실행됩니다. 데이터가 수신 된 후에 만 ​​실행됩니다.

$.ajax({ 
     url: '/desktopmodules/uploader/API/upload/getPolicy', 
     type: 'POST', 
     data: data, 
     success: function (response) { 
      console.log(response); 
      if (response) { 
       policy = response.policy; 
       signature = response.signature; 
       alert("2"); 
       up.settings.multipart_params = { 
        key: path, 
        filename: file.name, 
        AWSAccessKeyId: 'AKIAJIRIA6XD4V5MFWCA', 
        acl: 'private', 
        policy: policy, 
        signature: signature, 
        success_action_status: '201' 
       } 
      } 
      else { 
       return "Error"; 
      } 
     } 
    }); 
+0

감사합니다. 전에 접근 방식을 시도했지만 어떤 식 으로든 아마존 s3에서 "키"가 POST 요청에서 발견되지 않는다는 오류를 반환합니다. 요청을 살펴보면 요청에 포함 된 유일한 값은 'name'과 'filename'입니다. 코드의 범위가 너무 작아서 내 질문에서 어떻게 발견되는지 다시 결정하기로 결정했습니다. –

관련 문제