私は以下のコードスニペットを持っています。それはpromise
変数を定義する関数fn1
を持っています。 promise
は、約束オブジェクト返信をfn2
で返します。そのpromise
オブジェクトにthen
を呼び出し、最後にpromise
を返します。 then
ブランチは非同期コードがあるので、内部関数は外側の関数も非同期ように動作します非同期(async)であるとき"then"ブランチの後にmain関数の約束変数を返します。
function fn1() {
var promise = fn2(a, b);
promise.then(function() {
console.log('handling then');
console.log('doing something');
});
return promise;
}
は、私の理解です。しかし、問題はpromise
オブジェクトがthen
内のコードが完了する前に返されることです。
promise
オブジェクトをthen
以下に返そうとしました。しかし、promise
がfn1
の内部に返されません。
function fn1() {
var promise = fn2(a, b);
promise.then(function() {
console.log('handling then');
console.log('doing something');
return promise;
});
}
どうすれば解決できますか。ありがとうございました。
function fn1() {
var promise = fn2(a, b);
return promise
}
fn1().then(function() {
console.log('handling then');
console.log('doing something');
});
それともこれを行うことができます:
あなたは何を達成しようとしていますか?あなたは間違ったアプローチをとっているかもしれません(非同期呼び出しが本当に役に立たないと 'return'が本当に役に立ちません)。 – Hodrobond
@Hodrobond - 別のコードがこの約束オブジェクトを使って何か他のことをしているので、返される約束オブジェクトが必要です。これを行うための回避策は何ですか? – Harish