读书笔记:《24/7:晚期资本主义与睡眠的终结》 – [美]乔纳森·克拉里 著 / 许多 沈河西 译

读完时间:2021 年 8 月 8 日

出版时间:2021 年 5 月

人类生命大体上已经被裹挟进了没有间歇的持续状态,不停地运行就是其准则。

24/7 式的环境披着一层社会世界的外衣,但实际上它是典型的机器世界,是生命停摆,它不会让世人知道,为了维持其有效运行,人类需要付出多少代价。它必须和卢卡奇(Lukacs)等 20 世纪早期思想家所论述过的时间区别开来,即那种空洞的、同质化的现代性时间,表现为对时间制定度量衡或历法,为的是服务于国家、金融和工业的运行,个人的希望或规划则被排除在外。

"读书笔记:《24/7:晚期资本主义与睡眠的终结》 – [美]乔纳森·克拉里 著 / 许多 沈河西 译"继续阅读

讲讲 Promise/实战

一、什么是 Promise

1.1 Promise 的前世今生

Promise 最早出现在 1988 年,由 Barbara LiskovLiuba Shrira 首创(论文:Promises: Linguistic Support for Efficient Asynchronous Procedure Calls in Distributed Systems)。并且在语言 MultiLispConcurrent Prolog 中已经有了类似的实现。

JavaScript 中,Promise 的流行是得益于 jQuery 的方法 jQuery.Deferred(),其他也有一些更精简独立的 Promise 库,例如:QWhenBluebird

// Q / 2010
import Q from 'q'

function wantOdd () {
    const defer = Q.defer()
    const num = Math.floor(Math.random() * 10)
    if (num % 2) {
        defer.resolve(num)
    } else {
        defer.reject(num)
    }
    return defer.promise
}

wantOdd()
    .then(num => {
        log(`Success: ${num} is odd.`) // Success: 7 is odd.
    })
    .catch(num => {
        log(`Fail: ${num} is not odd.`)
    })

由于 jQuery 并没有严格按照规范来制定接口,促使了官方对 Promise 的实现标准进行了一系列重要的澄清,该实现规范被命名为 Promise/A+。后来 ES6(也叫 ES2015,2015 年 6 月正式发布)也在 Promise/A+ 的标准上官方实现了一个 Promise 接口。

new Promise( function(resolve, reject) {...} /* 执行器 */  );

想要实现一个 Promise,必须要遵循如下规则:

  1. Promise 是一个提供符合标准then() 方法的对象。
  2. 初始状态是 pending,能够转换成 fulfilledrejected 状态。
  3. 一旦 fulfilledrejected 状态确定,再也不能转换成其他状态。
  4. 一旦状态确定,必须要返回一个值,并且这个值是不可修改的。

"讲讲 Promise/实战"继续阅读