ext js 選擇本地路徑_使用node爬取網頁上的圖片,並儲存在本地目錄
阿新 • • 發佈:2021-01-30
技術標籤:前端面試
promise
promise的幾種狀態:
- pending:初始狀態
- fulfilled:操作成功
- rejected:操作失敗
當成功時,會呼叫resolve並且執行then裡的內容;當失敗時呼叫reject並且執行catch裡的內容。
function A(){
let p = new Promise(function(resolve, reject){
setTimeout(function(){
var num = Math.ceil(Math.random()*20); //生成1-10的隨機數
console.log('隨機數生成的值:',num)
if(num<=10){
resolve(num);
}
else{
reject('數字太於10了即將執行失敗回撥');
}
}, 2000);
})
return p
}
A().then(
function(data){
console.log("resolved成功回撥");
console.log('成功回撥接受的值:',data);
}
)
.catch(function(reason, data){
console.log('catch到rejected失敗回撥');
console.log('catch失敗執行回撥丟擲失敗原因:', reason);
});
console.log(A)
function getStr1() {
return new Promise(function (resolve, reject) {
setTimeout(function () {
resolve('我');
}, 1000);
});
}
function getStr2() {
return new Promise(function (resolve, reject) {
setTimeout(function () {
resolve('愛');
}, 1000);
});
}
function getStr3() {
return new Promise(function (resolve, reject) {
setTimeout(function () {
resolve('米');
}, 1000);
});
}
function getStr4() {
return new Promise(function (resolve, reject) {
setTimeout(function () {
resolve('飯');
}, 1000);
});
}
getStr1().then(function (data) {
console.log(data);
return getStr2();
}).then(function (data) {
console.log(data);
return getStr3();
}).then(function (data) {
console.log(data);
return getStr4();
}).then(function (data) {
console.log(data);
})
promise all
then裡面會接收所有promise返回的結果,以一個數組的形式返回
必須三個全部成功,只要有一個失敗,一個結果也得不到
function A(){
let p=new Promise(function(resolve,reject){
setTimeout(
function(){
var num=7;
console.log(num);
if(num<10){resolve(num)}
else{reject('過大')}
}
,2000)
})
return p;
}
function B(){
let p=new Promise(function(resolve,reject){
setTimeout(
function(){
var num=6;
console.log(num);
if(num<10){resolve(num)}
else{reject('過大')}
}
,2000)
})
return p;
}
function C(){
let p=new Promise(function(resolve,reject){
setTimeout(
function(){
var num=5
console.log(num);
if(num<10){resolve(num)}
else{reject('過大')}
}
,2000)
})
return p;
}
Promise.all([A(),B(),C()]).then(function(data){console.log(data)})
.catch(function(reason,data){console.log('失敗原因:',reason)})