2011-02-08 7 views
1

Я пытаюсь создать простой binaryStreamReader в javascript. В настоящее время у меня есть следующие:Javascript/HTML5 пытается создать BinaryStreamReader

function BinaryStreamReader(file){ 
    var reader = new FileReader(); 


    this.readBytes = function(start, bytes){ 

     reader.readAsBinaryString(file.slice(start,bytes)); 

     reader.onload = function(e){ 
      return e.target.result; //<-- this doesn't work now :P 
     } 

     reader.onerror = function(e){ 
      alert("FileError: " + e.target.error.code); 
     } 
    } 
} 

Однако, я хочу, чтобы использовать его как этот

var bsr = new BinaryStreamReader(); 
var data = bsr.readBytes(0,128); 

Очевидно, readBytes() это ничего не возвращает в моем классе. Можно ли вернуть ему возвращаемое значение onLoad?

+0

Пожалуйста, переименуйте свой вопрос «Java BinaryStreamReader» и повторно задать его как «Явы» :-) – rfw

+0

Это JavaScript: р в сочетании с файлом Апи HTML5. –

+0

Клянусь, я где-то видел слово «Java» ... – rfw

ответ

1
 
function BinaryStreamReader(file){ 
    var reader = new FileReader(); 

    this.callback = null; 

    this.ready = function(callback) { 
     if(callback) { 
      this.callback = callback; 
     } 
    } 

    this.readBytes = function(start, bytes){ 

     reader.readAsBinaryString(file.slice(start,bytes)); 

     reader.onload = function(e){ 

      if(this.callback !== null) { 
       this.callback(e.target.result); 
      } 
     } 

     reader.onerror = function(e){ 
      alert("FileError: " + e.target.error.code); 
     } 
     return this; 
    } 
} 

var bsr = new BinaryStreamReader(); 
var data = bsr.readBytes(0,128).ready(function(data) { 
    alert(data); 
}); 

это следует сделать трюк ...

Смежные вопросы