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