我已经在应用程序中实现了搜索引擎,我需要获取资源中所有的数据,例如用户的所有帖子。
我的api返回以下示例:
{
"count": 2,
"next": "http://127.0.0.1:8000/resource/?page=2",
"previous": null,
"results": [
{
"resource_data": "data"
}
]
}
我想在我的服务中创建一个方法,该方法返回带有包含所有页面数据的数组的promise。
我对打字稿或javascript的了解有限,我找不到优雅的方式。
使用选定的答案作为最佳答案,我已开发出可用于我的服务的代码
getAllMDPosts(): Observable<MDPost[]> {
return this.getRecursivelyMDPosts(`${environment.apiUrl}/mdposts/`);
}
private getRecursivelyMDPosts(url: string, results?: MDPost[]): Observable<MDPost[]> {
if (results === undefined) {
results = [];
}
return this.http.get(url).pipe(
switchMap(response => {
if (response.next) {
return this.getRecursivelyMDPosts(response.next, results.concat(response.results));
} else {
return of(results.concat(response.results));
}
})
);
}
我不喜欢三元运算符,通常向条件语句添加更多代码,并且必须修改三元运算符。
答案 0 :(得分:1)
您要切换到下一页,直到没有更多页面为止
id="mainform"
然后拨打无人接听的电话
from flask import Flask
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
return '''<script>
function formFunc(){
if (document.getElementById("file").files.length == 0) {
document.getElementById("mainform").action = "http://localhost:5000/nofiles";
} else {
document.getElementById("mainform").action = "http://localhost:5000/containsfiles";
}
}
</script>
<form onclick="formFunc()" id="mainform" method="POST" action="" enctype="multipart/form-data">
<input type="file" id="file" name="file" />
<input type="submit" />
</form>'''
app.run()