1. 程式人生 > 其它 >ext js 選擇本地路徑_使用node爬取網頁上的圖片,並儲存在本地目錄

ext js 選擇本地路徑_使用node爬取網頁上的圖片,並儲存在本地目錄

技術標籤:前端面試

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)})

在這裡插入圖片描述
在這裡插入圖片描述