1

.then メソッドにパラメーターとして渡すことで、既存の getter-setter をバインドできます。

わかった

var users = m.prop([]); //default value
m.request({method: "GET", url: "/user"}).then(users).then(function(data) {
    console.log(data);
    console.log(users());
});

NG

var users = m.prop([]); //default value
m.request({method: "GET", url: "/user"}).then(function(users) {
    console.log(users);
    console.log(users()); //Uncaught TypeError: users is not a function
});

パラメータとして .then メソッドに渡すことで、既存の getter-setter をバインドできるのはなぜですか?

この文法の仕様は Promise? or この文法の仕様はミスリル?

※m.prop()がgetter-setterであることは理解できました。


内部的に Promise オブジェクトに対してどのような処理が実行されていますか?

また、実装はライブラリ コードのどの部分ですか?

4

1 に答える 1

2

これは通常の Promise の動作の一部です。に渡された関数はthen、Promise が解決され、Promise 値が渡されたときに実行されます。Anm.propは、渡されたものに内部値を設定して返す getter/setter です。

最初の例では、最初thenは Promise 値を に代入しusers、次thenは Promise 値を最初の引数 ( data) として受け取る関数を実行し、それを の戻り値と共にログに記録しますがusers、これは同じことです。

2 番目の例では、2 番目thenの関数はその引数に名前を付けていますusers。これは、その関数内で、usersの代わりに Promise 値を参照することを意味しますm.prop。変数に と同じ名前を付けたためm.prop、それを参照することはできなくなりましたm.prop

于 2015-12-26T16:28:17.263 に答える