2016-12-16 12 views
5

私は以下のコードのブロックで約束を使用しています.2つめの最初のthen()私は何の値も返しません。次の()。角度2にtypescriptですを使用してイムありがとう:D約束の中でthen()を使う

Promise.resolve() 
    .then(()=>{ 
     this.getListStatus(); 
    }) 
    .then(()=>{ 
     return this._laundryServiceOrderService.findAll(true, offset, this.itemsPerPage, filterQuery) 
    }) 
    .then((response) => { 
     this.orders = response.data; 
     this.totalItems = response.totalItems; 
    }) 
    .catch(error => { 
     FlashMessage.setError(error.message); 
    }); 
+0

_「私は任意の値を返すいけない」_なぜあなたは値を返しません。

ここでそれを実証する簡単な例ですか? 'Promise.resolve()'の目的は何ですか? – guest271314

+1

私はthen()が以前の返された応答を使用すると思う。 –

+1

@NhanNguyen:正しい。 –

答えて

6

まず()私は、任意の値を返すいけないので、私はそれはそれから()次の関数の前に呼び出される最初の関数であるだろうthen()。

はい、そうです。 (これはデバッガで簡単に確認できます)

値を返さないことは問題ではありません。それは実質的にreturn undefinedと同じです。だからチェーンの次のコールバックは解像度値としてundefinedと表示されますが、その次のコールバックは解像度値を気にしないので問題ありません。

Promise.resolve("a") 
 
    .then(result => { 
 
    console.log("First callback got: " + result); // Gets "a" 
 
    }) 
 
    .then(result => { 
 
    console.log("Second callback got: " + result); // Gets undefined 
 
    return "b"; 
 
    }) 
 
    .then(result => { 
 
    console.log("Third callback got: " + result); // Gets "b" 
 
    }) 
 
    .catch(error => { 
 
    console.log("There's no error above, this won't get triggered."); 
 
    });

+0

ありがとう –

関連する問題