我设计了这个函数,它将用户名的推文作为数组返回:
function getArrayOfTweetsFrom(username) {
return new Promise((resolve, reject) => {
T.get('statuses/user_timeline', {
screen_name: username
}, function (err, data, response) {
if (err) {
reject(err);
} else {
resolve(Rx.Observable.from(data));
}
})
})
}
它从这个名为data的数组解析为Observable(它是一个可迭代的对象,因为data [0]给了我第一条推文)。然后,我这样做了:
Rx.Observable.fromPromise(getArrayOfTweetsFrom('user')).subscribe((eachTweet) => {
console.log(eachTweet)
});
但是它会记录一个Observable对象。它是可迭代的,当它不应该是因为我单独输出每条推文时......
我得到一个以
结尾的疯狂可迭代对象 _fn: undefined,
_scheduler: CurrentThreadScheduler {} }
以及来自Observable Object的那些东西
更新:
我忘了flatMap
,因为我正在返回一个observable,所以这里是更新的代码,但同样的问题仍然存在:
var cuteStream = Rx.Observable.just('cuteemergency').flatMap(
(username) => {
return Rx.Observable.
fromPromise(getArrayOfTweetsFrom(username))
}
).
subscribe(console.log);