有一個場景,我們有一個循環,並在循環內我們需要調用http
服務來獲取有關信息循環中的每個項目。
然後基於服務調用的結果,我們需要評估和執行其他工作,然後繼續循環中的每個元素。
據我所知,由於服務調用的同步性質,這不會起到編碼的作用,服務調用本身就是一種承諾。
只看最好的角度來實現這一點。在過去,我用$q.all
但我不得不做多個循環,它似乎使用$q.all
完成。需要從內部循環調用角度http服務,並在執行代碼之前等待服務的值返回以下調用
_($scope.searchResult)
.each(function (results) {
var specialInfo = myService.getInfo(results); // http service call
if(specialInfo.length > 0){
// Do something
}
else
{
// Do something else
}
});
請注意任何人迴應我需要服務返回之前繼續前進,因爲如果條件滿足,我會顯示模式。上面的代碼是僞代碼,我知道。然後在getInfo上丟失了,但你明白了。在檢查循環中的下一個項目之前,每個循環都可能需要用戶輸入才能繼續。
不要把增編在評論...更新問題本身 – charlietfl
更何況你可以停止這個循環用戶輸入。沒有意義 – charlietfl
不確定你的意思?這將做一些邏輯並打開一個模式,如果符合標準,不知道什麼是沒有意義的。 – maguy