私は様々な形で次のような質問を見てきましたが、私はこの特定のケースをクラックすることができないようにそして、私は約束の内部で機能を渡したい...約束ES6
を関数を渡しますそのPromiseを実行し、その結果で何かをしてください。渡される関数は、以下のデータベーストランザクションtxn
機能である:
db.transaction(txn => {
//lodash reduce function to execute each promise sequentially
_.reduce(promisesToExecute, (pending, next, i) => {
return next
//this bit is wrong but I don't know how else to pass in txn
//how should I pass txn into the promise?
.then(fn => fn(txn))
.then(newIds => {
if (newIds) {
returnContent[i] = newIds
}
return next
})
}, Promise.resolve())
})
そして、私は実行したい約束はここに任意のアイデア
(newVals, id, fkId) => {
return new Promise((resolve, reject) => {
return txn => {
//I want txn to be available in here to use
return db.table('Users')
.insert(newVals)
.transacting(txn)
.then(res => {
resolve(res.id)
})
.catch(err => {
reject(err)
})
}
})
のですか?何とかnewIds => {}
関数をコールバックとして渡す必要がありますか?
? – JLRishe
'_.reduce'とは何ですか?アンダースコアからですか? – slebetman
あなたの用語では混乱します。 「約束を実行する」とはどういう意味ですか? 「約束の中で機能を渡す」とはどういう意味ですか?あなたは "明白な約束のコンストラクタの反パターン"を使用していることを認識していますが、これはおそらくあなたの問題に直接関係していませんか?あなたの約束のコンストラクタから関数を返すことは何もしません。 –