我目前正在與PG-承諾,藍鳥發電機:PG-承諾:空話
function * getOrRegisterCurrentFriendIfProvided(t)
應該返回一個空的承諾(如果t.ctx.context是不確定的)
NB :
yield new Promise(function (resolve) { resolve({}) });
或調用另一個函數(即提供了一個結果)::
yield t.task.call(params.friend,anotherFunction);
在純藍鳥一個例子
任何方式來表達我的空承諾pg-promise(不使用像t.none(「BYPASS查詢」))的查詢?
與下面的示例中,當我這樣做:
db.task(getOrRegisterCurrentFriendIfProvided)
.then(function(result){
console.log(result) // gives me undefined
})
我不確定。我相信,這個問題occurer時t.ctx.context未定義
編輯:全碼:
function * getOrRegisterCurrentFriendIfProvided(t) {
let params = t.ctx.context;
if (params.hasOwnProperty("friend")) {
yield t.task.call(params.friend,anotherFunction);
} else {
// returns a empty result ({}) promise , just to make promise chain not angry
yield new Promise(function (resolve) { resolve({}) });
}
}
您需要爲您的問題添加'getOrRegisterCurrentFriendIfProvided'實現,否則不可能知道您在做什麼以及問題出在哪裏。 –
剛剛添加並找到了解決方案,但它可能不是最好的解決方案 – jy95
問題現在已經很明顯 - 您的回調中任何地方都沒有返回任何東西,那麼您期望從任務中返回什麼? :) –