私はAsync JSを初めて使用しています。 Firefoxに次のような機能を追加しました。JavaScriptをラップする別のものに解決する約束?
function addFoosToUrl(url, foos) {
var promises = []
foos.forEach(foo => {
entry = { foo: foo, url: url }
let promise = PlacesUtils.fooStuff.insert(entry)
promises.push(promise)
})
return Promise.all(promises)
}
期待どおりに動作します。関数PlacesUtils.keywords.insert
は、データベースにエントリを挿入し、完了するとnull
に解決されるPromiseを返します。したがって、Promise.all()
documentationから期待されるように、私の関数はすべてのエントリが挿入された後に確定値を返します。PlacesUtils.keywords.insert
の解決された値の配列に解決されます。これはNULLの配列です。
url
のように、私が返すPromiseが何か連鎖に役立つように、Promise.all()
をラップする方法があるようです。それを行うためのきちんとした方法はありますか?