在package.json
中对依赖包的版本使用^
、~
等时需要注意的地方。
package.json 详细说明
从零搭建一个简单的脚手架工具,像vue-cli
一样,一个命令就能变出一个完整结构的初始项目。流行的脚手架工具有很多实用的功能,这里要说的是最基本的一项:通过一个命令快速创建出初始项目。
使用 Promise 对 setTimeout 进行封装,从而支持链式的调用。
const delay = (func, millisec, options) => {
let timer = 0
let reject = null
const promise = new Promise((resolve, _reject) => {
reject = _reject
timer = setTimeout(() => {
resolve(func(options))
}, millisec)
})
return {
get promise() {
return promise
},
cancel() {
if (timer) {
clearTimeout(timer)
timer = 0
reject(new Error('timer is cancelled'))
reject = null
}
},
}
}
使用🌰:
const d = delay(({a, b}) => {
console.log(a, b)
return a + b
}, 2000, {a: 1, b: 3})
d.promise.then((result) => {
console.log('result', result)
}).catch((err) => {
console.log(err)
})
// cancel
// setTimeout(() => {
// d.cancel()
// }, 1000)