2016-05-15 4 views
0

NodeJSでは、私は静的変数を返すための約束関数をラッピングしています。私は良い方法があると確信していますが、私はQのdocsでそれを見つけることができませんでした。角度で約束事として静的な値を返す

function parseXML(filepath) { 
    return Q.Promise(function (resolve, reject, notify) { 

     readXML(filepath).then(function (xml) { 

     ... (long synchronised code)... 

     //console.log('products -> ', products); 
     resolve(products); 

    }).catch(function (err) { 
     reject(err); 
    }); 
}); 
} 

が、私は$ q.whenを使用しますが、Qライブラリーの中に「とき」私は理解して、異なる役割を持っているようだ:これはQ.Promiseは冗長と思われるしかし、動作します。私は確かにいくつかの "いつ"の方法が欠けています。

function parseXML(filepath) { 
    readXML(filepath).then(function (xml) { 

     ... 

     // some Q method to create a fulfilled promise 
     Q.???(products); 

    }); 

} 
+0

あなたが '' parseXML 'からReadXmlの説明(ファイルパス)を返す必要があります'。関数が約束を使用すると、それは約束となり(あなたが約束を返す限り)、 'parseXML'は' thenable'になります – Wainage

+0

しかし、最初の例のようにQ.Promiseを作成する必要がありますか?またはQ.Promiseでメソッドをラップすることなく "products"変数を返す方法がありますか? – Guy

+0

いいえ、promise/asyncに行くと、同期することはできません。涙で終わるつもりです。答えが明らかでない場合は、私はあなたの例を肉体的に取り除くことができます。 – Wainage

答えて

1

どちらも、角度およびノー​​ドで、これは十分なものでなければならない:これは私が行うことができるようにしたいものです

function parseXML(filepath) { 
    return readXML(filepath).then(function(xml) { 
     ... (long synchronised code)... 
     return products 
    }); 
}