私は複数の画像を取得するために必要な画像テーブルを持っています。私はこれを行う簡単な方法を理解することはできません。私は各画像(または画像のセット)の.get promise呼び出しをループする必要があります。ポーチから複数の画像を取得する方法
次のコードは、1つのイメージレコード(実際には複数のイメージを持つことができます)を取得します。
次のコードには、配列の各セルに、このイメージセットに追加されたIDと添付ファイルのリスト(コンマで区切られた、したがって分割)の文字列が含まれています。 s [0]はイメージIDで、 ".get"に送信され、返された画像レコードを取得し、各イメージを分離して別の場所で使用するものです。
私は実際にそれをチェーンすることができません。私は何回呼び出しをしなければならないか分かりませんし、呼び出しをループに入れるのは明らかに行かない方法です。
これらのIDをPromise.allまたはPromise.foreachで使用する方法はありますか?
この例では、私は約束またはnullを返しています(私はPromise.resolve(null)を行うべきだと言われました)。サンプルは別のパウチコールから ".then"で始まります。
if (insertedImages != "") {
s = insertedImages[0].split(",");
return DB_TaskImages.get(s[0], { attachments: true });
}
else {
return;
}
}).then(function (doc) {
if (doc != null) {
iTemp = 0;
ありがとうございます。ここで
は私が
var insertedImages = [];
DB_WorkIssues.allDocs({ include_docs: true, descending: false }).then(function (response) {
data = response.rows;
imageKtr = 0;
for (var i = 0; i < response.total_rows; i++) {
if (data[i].doc.IsAttachmentInserted) {
DirtyFlag = true;
if (data[i].doc.IsAttachmentInserted) {
insertedImages[imageKtr++] = data[i].doc._id + "," + data[i].doc.IsAttachmentInserted;
}
updated[iTemp++] = data[i];
}
}
if (updated.length > 0) {
CTL_HiddenJsonWorkIssues.val(JSON.stringify(updated));
}
// Handle images - only handling the 1st image record here
if (insertedImages != "") {
s = insertedImages[0].split(",");
return DB_TaskImages.get(s[0], { attachments: true });
}
else {
return;
}
}).then(function (doc) {
if (doc != null) {
iTemp = 0;
for (var key in doc._attachments) {
if (iTemp > 0) {
attachments[iTemp] = new Array();
}
attachments[iTemp][0] = key;
attachments[iTemp++][1] = doc._attachments[key];
}
}
if (iTemp > 0) {
if (attachments[0].length > 0) {
CTL_HiddenJsonImages.val(JSON.stringify(attachments));
}
}
}).then(function() {
これは、単一の画像罰金を扱うが、私はそれが画像を取得するコードのような何かをするように変更されるだろう倍数を、処理する必要がで働いていたコードのセクションです.getは以下のthenableにドキュメント(添付ファイルレコードを)渡しする場所以下:
// insertedImages would be an array of something like: "819218,fighterjet.jpg, lions.jpg"
// where 819218 is the key for the image record and then a list of images.
var s;
if (insertedImages != "") {
for (var i = 0; i < insertedImages.length;i++) {
s = insertedImages[i].split(",");
return DB_TaskImages.get(s[0], { attachments: true });
}
}
私は多分私は配列にして何とかすべて「[0] s」を移動する何かを考えていた
それをプロミスで使ってください彼はすべて機能します。どのようにそれを行うか分からない。
それは場合、あなたドンだ場合 'サンプルは、別のポーチcall.'から「.then」で始まり'.then'は常に返される値の約束を返します。返された値が返される場合、返す値は返されます。返り値が返される場合、返す値は返されます。 –
' '' x = Promise.resolve() 'を設定すると、ループの各反復で' x = x 'が設定されます。次に、(()=>約束を返す何か...チェーンができる任意の長さである –
私はDB_TaskImages.get()を返すか、何も返さないと言っていますか?だから私はちょうどelse/returnを取るべきですか?私はいつも何かを返さなければならないと思った。 – tshad