私はjavascriptを初めて使うので、私は約束(ブルーバードを使用)を使用する方法を理解する助けが必要です。私のコードは以下の通りで、プロパティが解決された後にコンストラクタでプロパティを初期化する必要があります。プロパティを設定するためにコンストラクタでpromiseオブジェクトを呼び出す方法
var getCookie = function(object, someParams) {
return connect(someParams)
.then(function(response){
self.cookie = response.cookie;//this should be done as part of object initialization.
done();
});
}
var app = function(){
var self = this;
getCookie(self);
//how to make sure that return happens after promise is resolved?
return self;
}
私はこのアプローチを試みましたが、何が起こっているのは、クッキーが設定されていない状態でアプリケーションが返されていることです。それはいつか後に設定されます..それは約束を完了する前にそれが戻っていないことを確認するか?約束のモニターを追加する必要がありますか?私はこれが同期プログラミングのように聞こえると理解していますが、私が使用するapiは約束を返すだけです – learningtocode
あなたは私の答えで何を提案していません。以下は、偽の 'connect'実装を実装したものです:https://jsfiddle.net/yqu5szLb/。 「*約束のモニターを追加する必要がありますか?」いいえ、約束はすでにその問題を解決しています。 'getApp()。then(...)'に渡されるコールバックは、 'app.cookie = cookie;'の後にのみ実行されます。 –