メモ---簡単に理解するPromiss
2812 ワード
人の文章を見てメモをとった
戻り関数は実は1つのパラメータで、この関数を1つのパラメータとして別の関数に渡し、その関数が実行された後、伝達されたこの関数を実行し、このプロセスは戻ります.
メイン関数の事前にやり終えて、後で伝えられた関数の例を呼び出します:あなたは彼女を家に送って、あなたはきっと言います:“家に着いたら私にメッセージを送ってください.”そしてあなたの彼女は家に帰ってから本当にあなたにメッセージを送った.実はこれがコールバックの過程です.あなたはパラメータ関数(家に着いたらメッセージを送ってください)を彼女に残して、それから彼女は家に帰って、家に帰る動作は主関数です.彼女は先に家に帰ってから、主関数の実行が終わってから、伝達された関数を実行しなければなりません.それから、あなたはメッセージを受け取ります.
メイン関数を定義するときは、コードにcallback()コールバック関数を先に実行させますが、出力結果はコールバック関数の内容を出力します.これは,主関数がコールバック関数の実行を待つことなく,次に自分のコードを実行できることを示している.一般的にコールバック関数は時間のかかる操作に使われています
promiseは構造関数であり,熟練した方法としてall,reject,resolve,プロトタイプにthen,catchなど同様の熟練した方法がある.
Promiseのコンストラクション関数は、関数であるパラメータを受け入れ、非同期操作が成功した後のコールバックと非同期操作の実行に失敗したコールバックの2つのパラメータ:resolve,rejectを入力します.
上はnewのオブジェクトにすぎませんが、呼び出されていません.私たちが伝えた関数はすでに実行されています.これは注意しなければならない詳細です.Promiseを使用する場合は、次のような関数を1つの関数にパッケージし、必要に応じて実行します.
ionic 3の小さな例です
Promissという文章は詳しく書かれています.
戻り関数は実は1つのパラメータで、この関数を1つのパラメータとして別の関数に渡し、その関数が実行された後、伝達されたこの関数を実行し、このプロセスは戻ります.
メイン関数の事前にやり終えて、後で伝えられた関数の例を呼び出します:あなたは彼女を家に送って、あなたはきっと言います:“家に着いたら私にメッセージを送ってください.”そしてあなたの彼女は家に帰ってから本当にあなたにメッセージを送った.実はこれがコールバックの過程です.あなたはパラメータ関数(家に着いたらメッセージを送ってください)を彼女に残して、それから彼女は家に帰って、家に帰る動作は主関数です.彼女は先に家に帰ってから、主関数の実行が終わってから、伝達された関数を実行しなければなりません.それから、あなたはメッセージを受け取ります.
// ,
function main( callback ){
callback();
console.log(' ');
}
//
funcation test(){
setTimeout(()=>{
console.log(' '); //
},3000)
}
// , test()
main(test);
//
メイン関数を定義するときは、コードにcallback()コールバック関数を先に実行させますが、出力結果はコールバック関数の内容を出力します.これは,主関数がコールバック関数の実行を待つことなく,次に自分のコードを実行できることを示している.一般的にコールバック関数は時間のかかる操作に使われています
promiseは構造関数であり,熟練した方法としてall,reject,resolve,プロトタイプにthen,catchなど同様の熟練した方法がある.
var pro = new Promise((resolve,reject)=>{
//
setTimeout(()=>{
console.log(“ ”);
resolve(true);
},1000)
})
Promiseのコンストラクション関数は、関数であるパラメータを受け入れ、非同期操作が成功した後のコールバックと非同期操作の実行に失敗したコールバックの2つのパラメータ:resolve,rejectを入力します.
上はnewのオブジェクトにすぎませんが、呼び出されていません.私たちが伝えた関数はすでに実行されています.これは注意しなければならない詳細です.Promiseを使用する場合は、次のような関数を1つの関数にパッケージし、必要に応じて実行します.
function runAnsy(){
return new Promise(()=>{
setTimeout(()=>{
console.log(‘ ’);
resolve(true);
},1000);
});
runAsync();
}
Promiseオブジェクトにはthen、catchメソッドがあります。これが強みです。
runAsync().then((data)=>{
if(data){
console.log(data)
}
})
ionic 3の小さな例です
//
myInvite() {
return new Promise((resolve) => {
this.httpServe.get('invite/myInvite', {
pageNo: this.pageNo + 1,
pageSize: 10
}).then(res => {
if (res.success) {
if (this.pageNo == 0) {
this.list = res.dataWrapper.result.resultList;
} else {
this.list = this.list.concat(res.dataWrapper.orders.resultList);
}
this.has_next = res.dataWrapper.result.hasNext;
resolve(true);
} else {
resolve(false);
}
// console.log(" ", res);
})
})
}
//
doRefresh(refresher) {
this.currentTime = new Date();
this.pageNo = 0;
if (this.pet == 'invite') {
this.myInvite().then((res) => {
if (res) {
refresher.complete();
}
}).catch(() => {
refresher.complete();
})
} else if (this.pet == 'income') {
this.myRevenueRecord().then((res) => {
if (res) {
refresher.complete();
}else{
refresher.complete();
}
}).catch(() => {
refresher.complete();
})
}
}
Promissという文章は詳しく書かれています.