私はプロミスチェーニングをしようとしていますが、私はundefined
をチェーンの一部として得ています。問題は私がserviceFactory.GetProjectManager()
を使用しているときのようです。私がそれを返すと、それは約束を返すようには見えないが、代わりにの解決された値で次の.then()
に自動的に入る。promise chaining undefinedを返す
GetProjectManager
が文字列を返し、関数呼び出しから返された場合、それを約束して次の約束に渡すことはありませんか?
dataFactory.GetProject()
.then(function(result){
return result.Response.ProjectId;
}).then(function(projectId){
return serviceFactory.GetProjectManager(projectId);
})
.then(function(result){
//GET UNDEFINED HERE <---------
})
.catch(function(error){
});
私は以下のようなコードを記述する場合、それは、コールバックで正しい値を返しますが、私は、扁平約束チェーンを使用するコールバックを使用する必要はありません。
dataFactory.GetProject()
.then(function(result){
return result.Response.ProjectId;
}).then(function(projectId){
serviceFactory.GetProjectManager(projectId
,function(result){
//Returns Project Manager Here <----
}
,function(error){
});
})
.catch(function(error){
});
serviceFactory.GetProjectManagerは約束を返しますか、それとも単に引数としてコールバックを受け入れますか? –
それはコールバックを受け付けるだけです、なぜ私は、約束の連鎖がうまくいかないのかと思いますか? – FillyPajo
良い推測@FilipJuristovski –