2016-12-19 14 views
0

私は以下のJavaScriptの約束を持っています。文書のリストをループして、Dropbox(API呼び出し)に1つずつアップロードし、各文書の共有リンクを取得して保存しますこれらのリンクを含む電子メールを生成します。私がやろうとしている何マップの機能を削除

docs = self.checkedDocs(); 
body = "Please click on the link(s) below to view your document(s): "; 
$.when.apply($, docs.map(function (doc) { 
    return self.service.getDropboxLink(doc).then(function (dropboxLink) { 
     return lineBreak + doc.documentDescription() + ": " + dropboxLink; 
    }); 
})).done(function() { 
    var attachment = [].join.call(arguments, ''); 
    formatEmail(attachment, body); 
}); 

はまったく同じものですが、唯一文書について、私はもうmapは必要ありませんが、私はそれを行う方法がわからないんだということを理解しています。

お手伝いできますか?

+0

これは「JavaScriptの約束」ではない限り、「jQueryの約束」です。 jQueryの約束事(jQuery自体、もし可能であれば)から進むことを強くお勧めします。彼らのための必要性は今ではなく、意味のある方法で、そしてせいぜい非標準的に壊れています。 –

+0

「意味のあるやり方で壊れている」という意味を説明できますか? – user3378165

答えて

2

$.whenコンストラクトは、いくつかの約束を待つ必要があるため、正確に使用されます。 1つのドキュメントだけでは、ほとんどの複雑さが解消されます。

self.service.getDropboxLink(doc).then(function(dropboxLink) { 
    var attachment = doc.documentDescription() + ": " + dropboxLink; 
    openEmail("Please click on the link below to view your document: ", attachment);   
}); 
+0

(openEmailからformatEmailに質問が変わった) –

+0

完全に働いてくれてありがとう!説明をありがとう、今私は本当にそれがどのように動作するのか理解しています!ありがとうございました! – user3378165