第14章 Promise 物件

2021-10-01 23:19:00 字數 2952 閱讀 8184

promise 物件有以下兩個特點:

1。物件的狀態不收外接影響。有3種狀態: pending(進行中)、fulfilled(已成功)和rejected(已失敗)

2. 一旦狀態改編就不會再變

14.2 

var promise = new promise(function (resolve, reject)  else 

})

function timeout(ms) )

}timeout(100).then((value) => );

let promise = new promise(function (resolve, reject) )

promise.then(function () , function() )

console.log("hi!");

//非同步載入

function loadimageasync(url) ;

image.onerror = function () ;

image.src = url;

})}

14.3

var getjson = function (url) 

if(this.status === 200) else

};});

return promise;

}getjson("posts.json").then(function (json) , function (error) )

getjson("/api/articles?type=more&category=home&shown_offset=1578406645819228").then(function (json) , function (error) ).then(function(json) ).then(function(json) )
getjson("/post/1.json").then(function (post) ).then(function(comments) , function() );
14.4

getjson('/posts.json').then(function (posts) ).catch(function (error) );
p.then((val) => console.log('fulfiled: ', val))

.catch((err) => console.log('rejected', err))

// 等同於

p.then((val) => console.log('fulfiled: ', val))

.then(null, (err) => console.log('rejected', err))

var promise = new promise(function (resolve, reject) );

promise.catch(function (error) );

// 寫法一

var promise = new promise(function (resolve, reject) catch(e)

});promise.catch(function (error) )

//寫法二

var promise = new promise(function (resolve, reject) )

promise.catch(function (error) );

// bad 

promise

.then(function (data) , function (err) )

// good

promise

.then(function (data) )

.catche(function (err) );

14.5 promise.all()

var promises = [2, 3, 5, 7, 11, 13].map(function (id) );

promise.all(promises)

.then(function (posts) ). catch(function (reason) );

const databasepromise = connectdatabase();

const bookspromise = databasepromise

.then(findallbooks);

const userpromise = databasepromise

.then(getcurrentuser);

promise.all([

bookspromise,

userpromise

]) .then(([books, user]) => picktoprecommentations(books, user));

14.6 promise.race()

const p = promise.race([

fatch('/resource-that-may-take-a-while'),

new promise(function (resolve, reject) )

]);p.then(response => console.log(response));

p.catch(error => console.log(error));

14.7 promise.resolve()

14.8 promise .reject()

14.ll promise.try()

第15章 物件導向程式設計 14

15.8.1 指標型控制代碼 class base class child public base class basemanager basemanager const basemanager i p i.p use i.use basemanager const base i basemanag...

第14章 陣列

1 定義 相同的名稱和型別的變數的集合 陣列通常比較大,為了節省記憶體,c 規定陣列在程式中只能有乙個原本,沒有副本 陣列中的變數叫陣列元素 int a 10 陣列的型別 陣列的名稱 陣列的下標 2 陣列下標越界 3 陣列的初始化 1 陣列的部分初始化 int array 20 2 int arra...

第14章 秘密

我們決定回家後的第二天一起去海麗家,看能不能通融一下海麗的父親讓海麗繼續上學,追求她的夢。可是我的心裡老是感覺怪怪的,一直猶豫自己要不要再要插手這件事情。海麗雖沒有明說,但我真的傷了她,在她最需要的時候拋棄了她。而她也報復了我,用她對我的冷落表達對我的失望和傷心。乙個內向的人,如果沒有傷心到極限,沒...