2016-11-04 8 views
0

Я использую волокна в метеор + реагирую на стороне сервера. Я создал API (с помощью проворные: restivus пакет atmospherejs), но я получаю сообщение об ошибке на журнал сервераволокна, не работающие в метеорной реакции - Ошибка: код Метеор должен всегда работать внутри волокна

var response = {}; var url = //any server url var Future = Npm.require('fibers/future'); var future = new Future(); xhttp.onreadystatechange = function() { 
    if (this.readyState == 4 && this.status == 200) { 
     data = JSON.parse(xhttp.responseText); 
     console.log(data.status," -- responseText cancel image preview job -- ", xhttp.responseText," jobId -- ",id) 
     if(data.status == "success"){ 
      console.log('success') 
      mongoCollection.update({_id:id},{ 
       $set:{ 
        status: "cancel" 
       } 
       },(err)={ 
        if(err) { 
         console.log("error") 
         response.status = "error"; 
         response.message = err; 
         future.return(response); 
        } 
        else{ 
         response.status ="success"; 
         future.return(response); 
        } 
      }) 
     }else { 
      console.log("not success") 
      response.status = data.status; 
      response.message = data.message; 
      future.return(response); 
     } 
    } }; xhttp.open("POST", url); xhttp.setRequestHeader('Content-Type', 'application/json'); xhttp.send(JSON.stringify(json)); 

я получаю следующее сообщение об ошибке:

[Error: Meteor code must always run within a Fiber. Try wrapping callbacks that you pass to non-Meteor libraries with Meteor.bindEnvironment.] 

ответ

0

Попробуйте это:

//... 
xhttp.onreadystatechange = Meteor.bindEnvironment(function() { 
    //your function code goes here... 
}); 
//...