2017-02-02 9 views
0

main.js APIレスポンス - サーバエラー:流星コードは常に、ファイバ内で実行しなければならない -

import { Meteor } from 'meteor/meteor'; 
import { Mongo } from 'meteor/mongo'; 
import { CurrentWeather } from '../collections/currentWeatherCollection.js'; 
import ForecastIo from 'forecastio'; 

if (Meteor.isServer) { 
    var forecastIo = new ForecastIo('c997a6d0090fb4f6ee44cece98e9cfcc'); 
    forecastIo.forecast('30.533', '-87.213').then(function(data) { 
     const currentWeather = JSON.stringify(data.currently, null, 2); 
     CurrentWeather.insert({currentWeather: currentWeather}); 
    }); 
} 

は私がMeteor.bindEnvironment()でコールバックをラップする必要があります知っているが、私はありませんよ約束でそれをどうやってやるの?どんな助けでも大歓迎です。

+0

'.then(Meteor.bindEnvironment(function(data){/ * ... * /}))'?また、[Meteor with a promise in libs](https://guide.meteor.com/using-npm-packages.html#promises)で[awaitを使う方法]も見てください。 –

答えて

2

通常、先物を使用しています。例えば

let Future = Npm.require('fibers/future'); 

if (Meteor.isServer) { 
    let future = new Future(); 

    var forecastIo = new ForecastIo('c997a6d0090fb4f6ee44cece98e9cfcc'); 
    forecastIo.forecast('30.533', '-87.213').then(function(data) { 
     const currentWeather = JSON.stringify(data.currently, null, 2); 
     CurrentWeather.insert({currentWeather: currentWeather}); 

     future.return(currentWeather); 
    }); 

    return future.wait(); 
} 
関連する問題