私はノードが少し初めてで、koa はまったく初めてです。ジェネレーターを使用して API への非同期 Web 要求を実行しようとしていますが、すべての要素をまとめる方法がわかりません。
注意として、いくつかの例がそれを行うのを見たので、私はブルーバードを使用しています。それは良い考えのように思えました。ブルーバードなしでやりたいことをもっと簡単に行う方法があれば、それもまったく問題ありません。
私のモジュールでは:
plugin.searchForItem = function * (name) {
Promise = require('bluebird');
request = Promise.promisifyAll(require('request'));
console.log("making request");
yield request.getAsync('http://apisitegoeshere.com/apicall').then(function * (result) {
var response = result[0];
var body = result[1];
console.log(response.statusCode);
yield response;
});
};
そして、私はそれを次のように呼んでいます:
search.searchForShow = function (name) {
data = this.plugins[0].searchForItem(name);
console.log("search returned: " + data);
console.log("search returned2: " + JSON.stringify(data.next()));
console.log("search returned3: " + JSON.stringify(data.next()));
return data;
};
コンソールを見ると、次のように表示されます。
search returned: [object Generator]
making request
search returned2: {"value":{"isFulfilled":false,"isRejected":false},"done":false}
search returned3: {"done":true}
私のコードがいたるところにあることは知っていますが、何時間も作業してきましたが、まだ修正に近づいていません。
ありがとう!