web-dev-qa-db-ja.com

矢印関数を使用してコールバック関数にパラメーターを渡す

ES5では duplicated の質問であることを知っていますが、ES6矢印関数を使用した構文を探しています。以下の私のコード。

fetchItems = (callback) => {
    //After ajax success
    callback(response);
}

const myParams = {name:"John"}
this.fetchItems((res) => {
    console.log(res.data);
});

上記のシナリオでは、いくつかのパラメーター(myParams)を関数呼び出しと共に渡し、関数に入るために、どうすればアーカイブできますか、助けてください。

6
Jaison

出来るよ:

const fetchItems = (callback, ...params) => {
    //Do whatever you want with the params
    callback(response);
}

使用例:

const fetchItems = (callback, ...params) => {
    callback(params);
}
    
fetchItems ((res) => console.log(res), 'foo', 1);
6
Twisting nether

同じようにできることは少ない

const getCountries = (data, callback) => {
    //After ajax success
    callback(response);
}

getCountries("data", ()=>{});
3
void

DefaultValueを使用する方法はありますが、それが最良だとは思いません。

より良い方法を見つけることができれば、答えを更新します。

fetchItems = (callback) => {
  var response = {data: 'a'};  
  //After ajax success
        
    callback(response);
}

const myParams = {name:"John"}
this.fetchItems((res, params = myParams) => {
    console.log(res.data);
    console.log(params);//{name:"John"}
});
0
Aluok